如何解答堆垛悖論?

堆垛悖論:如果我們承認以下兩個前提,那麼谷堆就不存在:

  • 一粒穀子不構成谷堆,並且
  • 如果 n 粒穀子不構成谷堆,那麼 n+1 粒穀子也不構成谷堆。

類似的還有:
世界上沒有禿頭,因為:

  • 一個非禿頭不是禿頭,並且
  • 一個非禿頭少了一根頭髮也不是禿頭。

世界上沒有富翁,因為:

  • 只擁有一分錢的人不是富翁,並且
  • 如果一個人不是富翁,那麼他多擁有一分錢也不是富翁。

所有單色可見光都是紅色的,因為:

  • 波長為 750nm 的光是紅色的,並且
  • 由於人眼無法區分兩束波長差小於 1nm 的單色可見光的顏色,所以如果一束光是紅色的,那麼這束光的波長即便再少 1pm,它也是紅色的。

其實羅大神的答案已經很完整了,但我還是忍不住要補充一些。原因有幾個。

其一,發現許多人對「悖論」這個詞有些誤解(比如某位答主認為這個論證「有辱悖論二字」),在所有答案中都沒有回答。本著知乎「先問是不是再問xxx」的原則,有必要先澄清一下「悖論」這一概念。澄清概念之後,才明白我們為什麼要去解決它,才能找到去解決它的幾個不同方向(而不是某些答主認為的「簡單啊,劃個量化標準不就完了嗎,用得著費這麼大勁?」)。

其二,大神的答案不太接地氣,比如cut規則,沒學過根岑演算的話要理解還是很困難,超賦值方案寫的也比較簡略,所以想用人話翻譯一遍。

其三,沒記錯的話應該還有大神沒有提到的解決方案和對各方案的評價,可以加以補充。


我的答案分三個部分,澄清 悖論 這個概念—按照分類提出各種解決方案並說明它們分別是如何解決的—總結

一、什麼是悖論,堆垛論證究竟算不算悖論?


首先,什麼是論證?論證就是前提+論證形式+結論,這是論證的三要素。前提和結論是命題(命題組),命題的屬性是「真值」,也就是真假。論證形式的屬性是而「有效性」,也就是「真前提用這個論證形式能否保證推出真結論」。


那什麼是悖論呢?悖論首先是一個論證。(別跟我扯說謊者悖論就只是一句話,你不論證能知道它有矛盾么?)廣義上的悖論指的是,直觀上為真的前提,經由有效的論證形式推導,得出了直觀上為假的結論。注意,這裡說的「為真」、「為假」是直觀上的而不是實際上的,看起來為真(假)的命題實際上不一定為真(假)。之所以這樣規定,是因為「實際上為真(假)」的命題實在是寥寥可數——數學夠真了吧?集合論夠真了吧?就連被奉為數學基礎的素樸集合論都會出錯,更別說日常生活中的命題了。因此,這裡的「為真」「為假」,只能是「直觀上」為真或假,而不能定義為實際上真或假。並且,實際上真的前提,經由有效的論證形式推導,根本不可能出現實際上假的結論,這是由論證形式的有效性決定的。因此如果把前提和結論的「真」「假」定義為實際上的真和假,那將沒有任何悖論。


這裡就可以區分三種情況。
1. 前提看起來是真的但實際上是假的。這樣的悖論就是大多數人認為的悖論,也就是狹義上的悖論,羅素悖論就是經典類型。這類悖論揭示的其實就是直觀真的前提其實不真,也就是在人類直觀的局限性和錯誤。

2. 結論看起來是假的但實際上是真的,結果推出了一個假結論就不奇怪了。比如巴拿赫塔斯基悖論(一個球分成兩個球那個),再比如skolem悖論(這個...不知道怎麼直觀解釋)。這種悖論得出的結論實際上並不假,但是我們就覺得很假,很怪,因此對這種悖論的分析有助於澄清我們的一些不易發現的直觀錯誤。當年發現自然數集和有理數集一樣大,發現一根實數軸和複平面上的點一樣多,都曾被認為是悖論,後來才知道,這些悖論恰好揭示了人類的本能認知在涉及到無窮概念的時候會出錯。這種悖論就是很多人認為的「並不是悖論」,但從廣義上說,它就是悖論。

(話說到這裡其實可以看出,不論廣義的還是狹義的悖論,最終都揭示了人類認知和語言的局限性和可錯性,對一個個悖論的分析最終都是要告訴人類:別被直覺的認知所誤導,直覺是需要澄清的;也別太依賴自然語言,自然語言是有缺陷的。這時,一個論證是不是悖論已經不重要了,究竟狹義上還是廣義上的悖論才算悖論也不重要了,因為他們的最終目標都是相同的。如果還有人不願接受堆垛悖論是悖論,我們大可以把他稱為puzzle,怪論,困境,之謎等等,這都不重要,重要的是如何分析並解決)

3. 有效的論證形式是有問題的。長期的實踐中發現,經典邏輯里有效的論證形式在現實中並不適用(比如
eg (p
ightarrow q) vdash (q
ightarrow p)這個有效論證形式根本就不符合現實),這正是各種非經典邏輯(多值邏輯、模糊邏輯等)得以發展的起源,尊重直觀,認為傳統的經典邏輯只適用於數學,至於要用到現實生活中,我們需要更貼近現實的邏輯,需要更符合直觀的邏輯,需要能在除了數學領域之外也能應用的邏輯(比如應用在現實中,計算機中,人工智慧中,哲學中)。這些就是非經典邏輯。(對應地,經典邏輯一般來說就是數理邏輯)


區分以上三種情況之後,我們可以很直接的得到處理這個悖論的幾種方案:

1. 說明前提其實不是真的(本體論模糊方案,以及羅答案中的劃界方案、認識論方案、超賦值方案)
2. 否認這種論證形式,提出新的論證形式(非經典邏輯)。(羅答案中的多值邏輯、模糊邏輯、理想語言)
3. 接受該悖論並給出合理解釋(本體論模糊方案,以及羅答案中的語境解釋方案)


為了解決悖論,先對這個論證的形式化如下:(直接抄羅答案的)

對於某個充分大的ninmathbb{N},我們有一列{a_i},(0leq ileq n),我們考慮的屬性是 P,並且對於這個屬性,有如下兩點成立:

  • P(a_0),並且,
  • forall iin{1,ldots,n}, P(a_{i-1})
ightarrow P(a_{i})。(注意到,在有窮的情況下,一個全稱語句可以視作若干個無量詞句的合取。)
    因此,a_nin P

看評論發現有些童鞋可能不太理解「在有窮的情況下,一個全稱語句可以視作若干個無量詞句的合取」,這句話說的就是forall iin{1,ldots,n}, P(a_{i-1})
ightarrow P(a_{i})這個前提可以看做以下這一系列公式:
Pa_0
ightarrow Pa_1\
Pa_1
ightarrow Pa_2\
Pa_2
ightarrow Pa_3\
......\
Pa_n
ightarrow Pa_{n+1}\
......
這樣列出來有個好處就是接下來比較方便討論。

在正式開始解決之前,還想多說幾句。
需要注意,堆垛悖論並不是一個悖論,而是一組可能使用這種推理形式推出的悖論,這一類悖論我更願意把它稱作「連鎖悖論」。我們在解決堆垛悖論的時候,並不只是單純的想解決這一個悖論,而是想解決整個這一類型的悖論。因此就不能僅僅通過「谷堆的擺放方式」等等這些特屬於這一論證中的詞語進行分析,而應該抓住這一類悖論的核心——模糊謂詞的模糊性和連鎖論證的論證形式。

二、各種解決方案
我先按照我上面的解決思路,重構羅答案中的各個方案,以及解釋為何某些答主的答案以及某些評論者的想法真的too naive :)
有很多人認為,這就是個定義問題,沒什麼好討論的。這一點也沒錯,但這種態度並沒有解決這個悖論,是定義問題,然後呢?怎麼定義才好?在接下來的各種討論中我們會發現,怎麼定義好像都不太好。


1. 說明前提實際上不是真的

1.1 劃界方案
這是最容易想到的方案,也是某些人對這個悖論嗤之以鼻的原因:劃個界限不就完了嗎?用得著那麼麻煩?劃界方案的原理是,通過人為畫一個界限,定一個n使得少於或等於n個穀子的都不是谷堆而多於n的都是谷堆,因此Pa_n
ightarrow Pa_{n+1}這個前提就不成立了,這就說明了前提實際上不是真的,從而解決悖論。


可是你怎麼劃界限?界限到底應該在哪?你不說明這個,就只說「劃個界限就完了」,簡直是耍流氓嘛,根本對這個悖論的解決一點幫助都沒有,也沒有達到我們的最終目標:揭示人類認知的局限性。劃界限這個辦法之所以在現實中被廣泛採用(比如法律中),完全是因為其實用性。但是我們並不是出於實用的目的才去探討這個悖論的,用實用的態度去探究這個,完全沒意思。

那到底怎麼劃界限?看到有人說「大家都同意的,少於多少穀子就肯定不是谷堆咯」,這還是出於實用的目的,單純是為了大家達成共識,其中並沒什麼道理。大家都同意的就正確嗎?

我們會發現,當你想去畫一個界限的時候,你會無從下手。因為你指定每個n數量的穀子是界限,我都可以問「那為什麼不是n-1或n+1?憑什麼n+1和n-1就差兩個穀子就升級成谷堆了?」

1.2 超賦值方案(通俗解釋、有些錯漏、但意思到了就行)
其實超賦值方案的雛形在上面已經提到了,就是那個「大家都同意的就可以當做界限」的方案。

術語什麼的就不說了,用人話解釋超賦值方案就是,我們有許多種方式讓「谷堆」這個模糊概念精確化(不同的劃界),這些劃界雖然各不相同,但不論何種劃界方法,一定有一些相似之處,比如1個穀子肯定不是谷堆,不管任何劃界方案,只要是合理的,都不可能規定1個穀子是谷堆吧?(當然你非要鑽牛角尖,說如果你是一隻螞蟻,1個穀子對你來說也是一個谷堆甚至是一個谷山,那你可以不用看這個方案了:))這時,我們就說Pa_1是「超級真」的,不管怎麼樣都不可能是假的。

超賦值理論有個重要的結論,「(經典)真就是超級真」,這結論是很顯然的,經典邏輯中有效的公式肯定是不管怎麼樣都為真的,比如p
ightarrow p這種重言式。顯然,在超賦值的理論下,有些劃界就不是超級真的,因此有些Pa_n
ightarrow Pa_{n+1}就不是超級真,從而有些前提實際上不是真的,悖論解決。

但超賦值理論要面臨的困難在於,雖然1個穀子肯定不是谷堆,這是超級真的,但是另外一端的超級真邊界在哪?也就是,多少穀子以上肯定是谷堆?如果沒有這麼一個邊界,那還是很反直觀,因為顯然1億個穀子摞起來肯定是谷堆了,不管怎樣的劃界肯定都會承認這一點的,也就是發現Pa_{100,000,000}是超級真。既然有一個超級真,那麼肯定就要有邊界。這個邊界到底在哪?又面臨劃界方案一樣的難題了。


1.3 認知主義方案(認識論方案)
時刻注意,我們分析悖論的目的是揭示人類認知的局限性。認識論方案就是直接從這一目的出發,區分本體論和認識論上的意義。

人話版:也就是認為,實際上是存在一條明確的界限的,只是由於我們認知能力的局限性,我們看不出來而已。實際上在某一個點上再多一個穀子就是能完成從「不是谷堆」到「是谷堆」的質變,只是因為我們的直覺太辣雞根本感覺不出來。這樣的話,對於那個特殊的n,Pa_n
ightarrow Pa_{n+1}就不是真的,因此前提為假,悖論解決。


簡單粗暴有木有!看起來很無厘頭有木有!但是仔細想想還真很難想出這種方案的漏洞...因為它就完全是從我們的最終目的出發的啊,根本就不做劃界,也不提出新的非經典邏輯,直接從目的出發提出解決方案,這種感覺就像你刷副本,本來要先打好多小怪才能打boss拿寶物,但是你拿到了一個符咒可以直接召喚出boss來打...

但是關鍵是,這種符咒真的存在嗎,本體論意義上的那條界限真的存在嗎?這是需要進行哲學辯護的,具體的哲學撕逼有很多這裡就不展開了。我們需要知道的是,既然這是一種哲學上的觀點,並且有人跟這種觀點撕起來,那這種觀點就並不完美,肯定有缺陷。比如很難證明本體論意義上的那條界限真的存在。想證明一個東西,要不就是演繹論證,要不就是歸納論證,要不就是直觀。演繹論證極度依賴於前提的成立因此很難構造,歸納論證不保真,直觀又根本行不通因為這裡說的就是直觀所達不到的地方。因此這條界限的存在性不太好證明。

還有一個很重要的缺陷就是羅答案里的

如果我們考慮到實際上這些概念是人腦創造出來的概念,那麼我們就很難將這些概念的本體論層面和認識論層面區分開來。

這什麼意思?意思就是,谷堆、禿頭這些概念只是語言而已,並不像桌子椅子一樣是本體論意義上存在的實體,語言本來就是人創造出來的,對世界的認知經常要依賴於語言。因此,語言是一個模糊了本體論和認識論兩個層面的東西。

本體論意義上,「谷堆」就是人創造的模糊概念,認識論意義上,「谷堆」就是人用來認識谷堆的詞。這倆沒多大區別吧?你非要去說它存在本體論上的界限卻不存在認識論上的界限實在是太奇怪了。

但是,客觀來說,認識論方案是目前最有影響的方案了,它直接、它避免了對經典邏輯的大改、避免了二值邏輯這一傳統概念的顛覆。

1.4 本體論模糊方案
有了認識論方案的基礎,我們可以提出一個全新的方案,也就是認為:即使是在本體論意義上,「谷堆」這樣的概念也是模糊的,也就是認為它本來就是模糊的。比如如果一個山脈和一個平原相接,哪裡是山脈的終點和平原的起點?如果很難找,那麼只能說「山脈」「平原」在本體論意義上,也就是實際上本來就是模糊的沒有明確邊界。

但是劇情發展到這裡就很沒意思了...這不就等於無奈的接受了悖論並且還不給出任何解決方案嗎...因此這種方案也可以被分類到第三類解決方案,也就是接受悖論的那些方案。

這種方案的意義在於,它引出了一個很激進的方案——理想語言方案。


2. 否認這種論證形式,提出新的論證形式(非經典邏輯)

否認這種論證形式,有兩種進路。一種是理想語言方案,認為應當調整模糊的自然語言以適應邏輯;另一種是非經典邏輯方案,認為應當提出不同於經典邏輯的其它邏輯,以適應自然語言。


2.1 理想語言方案
弗雷格、羅素他們接受這種悖論,並且認為,這種悖論恰好就說明了自然語言本身的模糊性。那麼怎麼解決這種模糊性呢?他們認為應該把這種有缺陷的自然語言用人工語言來代替,認為我們思考、論證、使用語言的時候,每時每刻都要注意,不要使用那些模糊的自然語言,要盡量使用精確的人工語言。當然,這裡的人工語言,指的就是經典數理邏輯那一套。

這種想法看起來很美好,也很宏大。由於模糊性在自然語言中無處不在,因此他們的方案實際上是想完全改造人類的語言,創造一個只使用精確語言的世界。這合理嗎?

看其他那些解決方案,都是在修正邏輯語言,或是在分析模糊概念。但這個方案是反過來,讓自然語言去適應人工語言。這種想法的哲學內涵在於,人工語言所依據的哲學基礎,在本體論的意義上比自然語言更加基礎,邏輯在本體論意義上比自然語言更加基本。這是需要進行哲學辯護的,雖然他們確實進行了這種辯護,但是對他們的批評也同樣是很有力的。
並且,這也不符合邏輯學發展的大方向。在弗雷格和羅素那個年代,通常認為邏輯是不可動搖的基礎,經典邏輯就是絕對真理。但是隨著發展,逐漸可以發現,經典邏輯其實只是對數學推理方法的一種規範,它的適用範圍基本僅限於數學。為了探究適用於各種其他領域的邏輯,各種非經典邏輯不斷發展出來。換言之,現在越來越多的認為,邏輯,並不是絕對的真理,而是更類似於數學建模一樣的存在。說的更學術范一點:現在邏輯更偏向於描述性,而不是規範性,這就是非經典邏輯之所以蓬勃發展的基礎所在。因此理想語言方案關注的人很少很少。


2.2 多值邏輯方案
簡單說就是否認非真即假的二值原則,認為對有些n來說,n個穀子既不絕對是谷堆又不絕對不是谷堆,處於一個模糊的中間狀態。於是論證在這樣一個n處就不能應用經典的論證形式,於是悖論解決。

進一步的,這個中間狀態還可以繼續分,比如可以分成「不太像谷堆」「有點像谷堆了」「比較像谷堆」「很像谷堆」等等。總之就是承認中間的模糊狀態。

從技術上來說,就是給不是谷堆的賦值為0,是谷堆的賦值為1,中間狀態的賦值為1/2,1/3等等。
但是這種方案其實不就是劃界方案嗎...劃界方案是畫一條界限使得界線兩邊分別是0和1,多值邏輯方案不就是多畫幾條界限的事?所以還是要面對劃界合理性的問題。


2.3 模糊邏輯方案
多值邏輯發展到極限就是模糊邏輯了,也就是可以在[0,1]區間內連續取值(模糊賦值函數 或 模糊隸屬函數)。這時賦值、有效性等等定義跟經典邏輯已經完全不一樣了,具體賦值方法太麻煩就不打上來了。

事實上我們可以注意到,劃界方案、多值邏輯、超賦值方案這一大批方案都會面臨同一個問題——高階模糊性,也就是解決方案自身的劃界模糊性。模糊邏輯正是為了解決這一問題而生的。

模糊邏輯是大部分答主認為的最佳方案,但是這裡有個問題,模糊隸屬函數如何確定?如何確定每個n對應的隸屬度?比如有個答主所說,在禿頭悖論中,可以指定113000根頭髮隸屬度為1,0根頭髮為0,中間線性變化。那就可以問,為什麼113000根頭髮就對應著1的隸屬度,為什麼不是112999,為什麼不是112998?這裡其實又有類似的模糊性了,這種模糊性還是高階模糊性。不論如何確定模糊隸屬函數,都會面臨這樣的困境。

另外,模糊函數的形式如何確定?線性函數嗎?還是某個開始於0無限收斂於1的函數(比如1-1/n)?還是其它的?哪一種更靠譜?誰也不知道。

並且,模糊數學其實更多的價值是應用上的價值,尤其是人工智慧、電子元件等等。它的哲學基礎其實很不牢固,哲學解釋也很不直觀。羅答案中已經舉了例子說明它不滿足同一律了,這裡再隨便舉個例子:
50個穀子算是谷堆 並且 60個穀子不是谷堆。(pwedge
eg q
p和q的賦值大概不會是1也不會是0,假設p的賦值是a,q的賦值是b(顯然a&的賦值是min{a, 1-b}。但直觀上這個命題的真值應該是多少?顯然是0啊,怎麼可能50個算谷堆而60個不算?這就體現了模糊邏輯的缺陷所在:並不適合用於解決這種悖論。


3. 接受該悖論,認為結論其實不是假的

3.1 語境主義方案
沒有什麼好補充的了,羅的答案已經很全了。


三、總結
別忘了我們最終的目標:揭示人類認知和語言的局限性。也別忘了這個悖論的核心所在:模糊謂詞的模糊性和連鎖論證的論證形式。
各種不同的解決方案之所以不同,就是源於它們對這個「局限性」的理解不同。
自然語言的模糊性究竟來源於什麼?有的方案認為是來源於語言本身的缺陷,有的卻覺得是來源於我們的認知能力,有的認為世界本身就是模糊的所以語言肯定也是模糊的。
連鎖論證的論證形式究竟錯了沒錯?如果錯了的話錯在哪兒?有的方案認為沒錯,錯的是自然語言;有的方案認為沒錯,只是不適用於這種實際論證;有的方案認為錯了,需要有新的賦值方法和論證形式。
正是這些,導致了不同的解決進路,也導致了邏輯學和哲學的蓬勃發展。如果話說到這裡,還有人對這一悖論嗤之以鼻,覺得沒什麼好分析的,沒必要費口舌長篇大論,我只能建議你不要再關注邏輯和哲學的相關話題了:)


自問自答,純粹是為了回答另一個問題做準備,不用專欄是因為:
專!欄!沒!有!數!學!環!境!啊!哼!唧!喵!嗚嗚嗚……QAQ

對於堆垛悖論的谷堆和禿頭情況有一個常見的誤解:堆垛悖論的前提是不成立的,因為,是否構成谷堆和擺放的方式有關,100000 粒穀子平攤在地上,自然不構成谷堆,但是 100001 粒穀子堆起來就構成谷堆了呀喵~ >▽<

因此,這裡的「構成」,並不是指一種實際上的情況,而是指所有的情況:如果,n 粒穀子在所有可能的擺放情況下都不構成谷堆,那麼 n+1 粒穀子在所有可能的擺放情況下也同樣不構成谷堆。

為了方便,不如作出這樣的限定:在堆垛悖論中,我們總是考慮一個特定的變化過程,比如說,一根一根地拔掉某個人的頭髮,一粒一粒地堆出一個谷堆……這樣的一個變化過程是一個確定的變化過程,假設一個人有 n 根頭髮,那麼就有 A_nldots A_0 共 n+1 個確定的狀態,並且,每兩個狀態都是如此相似,以至於我們無法區分這兩個狀態。

這一類論證的通用形式如下:

對於某個充分大的ninmathbb{N},我們有一列{a_i},(0leq ileq n),我們考慮的屬性是 P,並且對於這個屬性,有如下兩點成立:

  • P(a_0),並且,
  • forall iin{1,ldots,n}, P(a_{i-1})
ightarrow P(a_{i})。(注意到,在有窮的情況下,一個全稱語句可以視作若干個無量詞句的合取。)

因此,a_nin P

但是顯然,根據我們日常用語言的使用方式,a_n
otin P

解決嘗試及其問題

對於問題的處理,一共有三類:

  1. 否定前提/否定推理
  2. 否定翻譯
  3. 接受悖論

1. 否定前提/否定推理

1.1 劃界方案

第一種解決方案是直接劃定界線。這種方案在法律制定中最為常用,比如說,我國法律規定盜竊公私財物「數額較大」、「數額巨大」、「數額特別巨大」的標準分別為:

  • 價值人民幣 500 元至 2000 元以上的,為「數額較大」。
  • 價值人民幣 5000 元至 2 萬元以上的,為「數額巨大」。
  • 價值人民幣 3 萬元至 10 萬元以上的,為「數額特別巨大」。

通過這種方式,將模糊謂詞「數額較大」、「數額巨大」、「數額特別巨大」變成了精確謂詞。進而,使得條件句P(a_{i-1})
ightarrow P(a_i) 對於某個特定的 i 不成立,比如在這裡「如果一個人盜竊財物數額特別巨大,那麼再少一元也是特別巨大」在當前金額為三萬整的時候就不再成立。

類似的情況還出現在對於可見光的規定中:

  • 紫色 668–789 THz 380–450 nm
  • 靛色 631–668 THz 450–475 nm
  • 藍色 606–630 THz 476–495 nm
  • 綠色 526–606 THz 495–570 nm
  • 黃色 508–526 THz 570–590 nm
  • 橙色 484–508 THz 590–620 nm
  • 紅色 400–484 THz 620–750 nm

劃界雖然可以解決問題,但是劃界本身是隨意的。以法律為例,不同國家的法律對於盜竊金額以及量刑等級的劃分方式都有差異,這種差異不僅體現在具體界線的金額上,還是體現在界線的數量上。一個簡單的劃界並不具有說服力,而僅僅是一個出於實踐的便利而採用的權宜之計。因此,我們可以進一步追問,為什麼要劃定這樣的界線?是否存在非實踐的理由驅使我們這樣做?並且,由於人的認知精度有限,我們在特定情況下可能會問出這樣的問題:「為什麼明明 a 和 b 看不出差別,但是 a 具有 P 性質而 b 卻沒有?」在不回答這些問題之前,劃界就不是一個好的方案,至少,不是一個完整的方案。以法律實踐為例,即便我們假設法律本身是明確的,但是對於財產的價值估計在某種程度上依舊是任意的,這也就使得判決本身不可避免地帶有運氣的成分。以可見光為例,假設 100 次測量中,被測量單色光的波長有 49 次落在 590nm 以下,49 次落在 590nm 以上,2 次恰好為 590 nm,那麼這束光是什麼顏色的?而為什麼,我們肉眼明明不能分別波長為 590.1nm 和 589.9nm 的光,但是它們卻是不同顏色的?

當然,還有人以另外一個理由主張劃界本身是困難的。考慮堆垛和禿頭悖論,沙子和頭髮的排列方式會產生影響:再多的沙子,如果是均勻地鋪成薄薄的一層,也不能被稱為沙堆;一個人的頭髮如果像地中海那樣少了一半(或者更多),那麼顯然被稱為禿子不足為過,但是如果均勻地少了一半,又或者,均勻地每九根只剩下一根,則大部分人或許根本看不出來,或者,僅僅是覺得稀疏了一些,而不會將其稱為禿子。不過,根據前面的預設,這個理由並不能夠構成一個很好的理由。因為我們考慮的是一個具體的把人的頭髮一根根去掉的具體過程,期間任意一個狀態a_i和它相鄰的狀態a_{i+1}都只相差一根頭髮。並且,如果認為a_i的情況下這個人是禿頭,那麼在a_{i+1}的情況下這個人也必定是禿頭(因為多拔掉了一根頭髮),相對地,由於認知不可分辨的假設,我們會認為,如果在a_i的情況下這個人不是禿頭,那麼在a_{i+1}的情況下這個人也不是禿頭。同理,對於沙堆,我們可以考慮按照某個不使得沙堆倒塌的特定順序依次拿掉沙子的情況。

因此,對於劃界方案的唯一有力反駁還是界線本身的合理性。

1.2 認識論方案

認識論方案是一個耐人尋味的方案。它是對劃界方案的改進,認識論方案認為,雖然存在一條界線,但這條界線並不是人為劃定的,並且,由於認知能力的限制,我們沒有辦法知道這條界線在哪裡。因此,僅僅是我們自己以為「對於任意的iin{1,ldots,n }」都是如此,但是實際上存在某個特定的 j,使得a_{j-1}a_j有本質區別。

對於認識論方案有兩種不同的理解:

  • 對象的性質在某個地方發生了本體論意義上根本性的轉變,但是由於認知精度的限制,我們無法認識到這種區別。
  • 並不是每個增加一點點或者減少一點點的過程都是不可察覺的,存在這樣的較為明顯的分界點,但是由於可能的情況種類數目太多,我們無法逐一設想出每一種情況,進而即便有小的跳躍或者是突變,我們也無法察覺。

第一種情況似乎是常見的情況。至少對於光線來說,人由於自身的視覺精度限制,無法區分兩種波長過於靠近的光。因此,認識不到界線似乎有可能就是因為人類自身能力識別精度不足導致的。當我們將大多數具體的論證列出來的時候似乎也是如此:

  • 由於我們沒有辦法分辨多一粒沙和少一粒沙的沙堆,所以我們認為它們要麼都是沙堆,要麼都不是。
  • 由於我們沒有辦法分辨多一根頭髮和少一根頭髮的人,所以我們認為他們要麼都是禿子,要麼都不是。
  • 由於我們沒有辦法分辨兩個身高相差1nm 的人,所以我們認為他們具有完全相同的身高。

但是,以上論證都是基於同一個理由:如果 a 和 b 在我們所要考察的方面相似,那麼如果 a 具有我們所要考察的性質 P,那麼 b 也具有性質 P。

事實上這種替換的問題在於將相似(認知不可分辨)以某種方式和同一性等同起來,但是,相似性雖然具有自反性和對稱性,卻沒有傳遞性。因此,認知不可分辨不能作為事實上對應性質完全相同的理由,進而,如果僅僅是以相似性作為理由,那麼對於任意的 i,我們都推不出P(a_{i-1})
ightarrow P(a_i)

然而,採用第一種觀點的前提是承認本體論意義上的邊界是存在並且明確的。但是,如果我們考慮到實際上這些概念是人腦創造出來的概念,那麼我們就很難將這些概念的本體論層面和認識論層面區分開來。進而,上面支持認識論方案的理由就會變成反對認識論方案的理由:我們使用「紅」、「大」、「禿頂」、「高」這些辭彙的時候,本來就是在模糊的意義上使用的,換而言之,這種模糊是本體論意義上的,而不僅僅是認識論意義上的。

同時,我們似乎還會面臨另一個問題,就是我們的詞語同時有兩個方面,一方面是一個二分性的「是」或者「不是」。而另一方面,我們的詞語內部還有程度的區別,即「富有」可以分為「小康」,「富裕」,「富豪」,「富可敵國」不同的等級。這種困難就像是「不是論證的語句」和「壞的論證」之間的關係那樣,在某種程度上是糾纏不清的。

當然,這種論證方式對於另一些概念是不成立的,比如說我們可以具體指出一個人擁有多少錢,這種情況下,無論差異多麼細小,比如說相差 0.01 元的情況,我們也可以分辨出一個人「擁有 1000000 元」和「擁有 1000000.01 元」是不同的。從這個意義上來說,我們可以將堆垛悖論分為兩類。當然,如果我們的確用語言去敘述,而不是去看一系列的一個人變成禿頭的過程,那麼似乎對於禿頭悖論,我們也可以非常明確地區分這個人的兩個狀態。從這個意義上來說,這種不協調性實際上是概念和認知之間的不協調性,或者說,概念和印象之間的不協調性。

1.3 多值邏輯方案

基於前面對於程度的考慮,產生悖論的一個可能的原因是沒有區分概念內部的不同程度,這種對於程度的不敏感最終導致了一個對象逐步演變為另一個和自身相去甚遠的對象,進而引起荒謬感。另一方面,以沙堆為例,或許4 粒沙子構成的正四面體構型沙堆就已經可以稱為沙堆,僅僅是因為它非常小而已,所以事實上堆垛悖論本質上是關於堆垛的大小而不是關於是不是堆垛的討論,但是如果我們能夠成功地刻畫堆垛的大小程度,那麼悖論也就可以被解決了。

考慮多值邏輯的另一個理由是,一個群體中總有一部分對象不能被劃歸到兩個極端中,總有一些「中等」或者說「不確定」的情況,這種情況的存在使得我們似乎既不能斷定 P(a),也不能斷定 -P(a)。(在非數學環境下,命題前面的「-」表示否定)

基於後一種理由,我們可以考慮符合直觀的三值邏輯,即承認一種情況,使得在這種情況下 P(a) 的值既不真也不假。而由於中間某個條件句前件為真而後件不確定或者前件不確定而後件為假,所以我們認為這個條件句的賦值也是不確定而不是真,進而,否定了前提。

類似地,多值邏輯還可以用來表示一個命題成立的「程度」,比如說,如果 X 有一百萬,那麼他就是百萬富翁級的富有,而如果他有 1000 萬,那麼他就是千萬富翁級的富有,進而 Rich(X) 在兩種情況下取值不同。

但是,對於前面三值邏輯的運算規則,有一個非常不直觀的地方,就是如果p 的取值是不確定,那麼-p 的取值也是不確定,而由於邏輯的真值函項性,pvee
eg p 的取值也只能是不確定,這樣就否定了排中律。

同時,對於取有窮多個值的多值邏輯,由於取值必然是離散的,也就使得不同的程度之間有一個飛躍,也即劃定了不同程度之間的界線,進而就會產生疑問:「為什麼 a 和 b 那麼相似,卻被分入不同類別中,而 a 和 c 的差別如此大卻被分入同一個類別中?」

這種質疑本質上和對於劃界方案的質疑是一樣的。並且,和三值邏輯中第三值「不確定」有著直觀解釋不同,離散的多值邏輯的運算規則會更加不直觀,並且,似乎也沒有辦法很好地解決排中律不成立的問題。

1.4 模糊邏輯方案

多值邏輯的極致則是採取某種稠密甚至連續的取值,可以引入模糊邏輯中的模糊集和隸屬度的概念。通過連續賦值,可以解決多值邏輯中離散量分類產生的不連續的飛躍。但是,模糊邏輯並不能解決排中律不成立的問題。並且,模糊邏輯的演算規則同樣非常不直觀。

雖然從直觀上來看,模糊邏輯應該滿足如下運算規則:

  • V(
egphi)=1-V(phi).
  • V(phiwedgepsi)=min{V(phi),V(psi)}.
  • V(phiveepsi)=max{V(phi),V(psi)}.

但是,如果我們假定 A 的頭髮嚴格比 B 多。(p)「A 為禿頭」的真值為 0.6,(q)「B 為禿頭」的真值為 0.7,那麼直覺上p
ightarrow q的真值至少應該很高。但是如果我們認為p
ightarrow q等值於
eg pvee q,那麼,這一句幾乎必然真的句子的真值卻只有0.7。(貌似這個例子不是很好,不過,如果分別是 0.45 和 0.55 的話,那麼這個蘊含句的真值就只有 0.55,0.4 和 0.6 的情況下也僅有 0.6。)

個人認為,上面那個反駁本質上和排中律的問題是一樣的,因為無論我們對 p、q 怎麼賦值,只要V(p) &> V(q),那麼V (p
ightarrow q) 就大於 0.5。如果將這裡的模糊值理解為正確的概率,那麼就可以接受了。而當 V(p) 和 V(q) 的差值一定的時候,它們的取值越是傾向兩邊,則越p
ightarrow q的值越大(趨近於1)。這是因為,越是趨於中間,則體現出我們的判斷越不確定,進而,出錯的可能性越大。但是如果我們認定了V (p) &> V (q),那麼對p
ightarrow q判斷出錯的可能性還是低於 0.5。但是無論如何,這種解釋的說服力不夠,並且,當我們考慮模糊邏輯本身的發展歷程的時候,就會發現模糊邏輯本身作為解釋而言常常是不好的(由於反直觀地不承認排中律),它的價值大多在應用上。

1.5 群體判斷方案

在前面的判斷中,我們都假設這個判斷是由一個人進行的,但是如果我們假定一個群體中的每個個體都有一個清晰的界線,那麼我們可以通過將群體中的個體的界線綜合起來,得到一個模糊函數。但是這種方案的問題在於,很多情況下對於每個個體來說,清晰的界線也是不存在的,甚至,一個一致的界線都是不存在的。因此,「讓每個人做出判斷」這一步甚至都可能無法完成,那麼後面的「合理地將個人判斷匯總起來」也就是空談了。

這種方案想做的事情本質上和模糊邏輯方案是一致的,僅僅是為解決一個集體中個體對象的語言不能統一所採用的方法,但是這種方法並不能夠解決個體的語言本身的問題。

1.6 超賦值方案

超賦值方案是在經典邏輯的基礎上引入一個新的概念——超級真。

我們說一個命題是超級真的(V(p)=	op),如果對於任意劃界下的賦值vin Esubseteq 2^{At}v(p)=	op,其中At 為原子命題集合,E 是一個劃界集合。類似地可以定義超級假的概念:如果一個命題是超級假的,那麼對於任意的賦值它都為假。而剩下的那些命題,我們說它們的真值是未定義的。

而通過將推理有效性的「保真」重新定義為「保超級真」,原來的論證是無效的,因為它不保超級真。又或者認為,這些論證的部分前提在某些劃界標準下為真,而在另一些下面為假,因而是真值不定的。

從結果上來看,超賦值方案否認作為歸納步驟的前提,也即,否認forall iin{1,ldots,n}, P(a_{i-1})
ightarrow P(a_{i})。但是,如果這句話翻譯為「存在j,使得P(a_{i-1})成立而P(a_j)不成立」,那麼這就是認為邊界存在。

但是認為邊界存在就會面臨前面對於劃界問題的質疑。而如果要避免這種質疑,就只能認為邊界不存在,也即,接受一個存在命題,但卻拒絕接受這個存在命題的任何代入特例。這顯然是不直觀的。

1.7 反對 cut 規則

經典邏輯中實際上有一條用於將短論證組合成長論證的規則。這條規則如下:

如果Gammavdash phiphi vdash psi,那麼Phivdashpsi

當然,對於不同強度的 cut 規則,作為中間項的可以不是一個命題,而是一個命題集合。

一個反對三值邏輯的理由是,三值邏輯加入不確定之後,沒有辦法很好地區分以下兩個條件句:

  • 如果 A 是禿頭,那麼他再多掉一根頭髮也是禿頭。
  • 如果 A 是禿頭,那麼他再多一根頭髮也是禿頭。

但是,如果我們認為,實際上的推理模式並不是上面那樣基於語句的模式,而是基於認知的模式——「由於我們無法分辨兩個相鄰的狀態a_{j-1}a_j,因此我們認為P(a_{j-1})leftrightarrow P(a_j)」,那麼,我們就並不是在通過單純的對於對象的語言描述來進行推理:雖然我們知道「如果 A 是禿頭,那麼他再多掉一根頭髮也是禿頭」,但是對於呈現在我們面前的兩個狀態a、a" 來說,我們根本就不知道哪個是a_{j-1},哪個是a_j。因此,我們沒有辦法採用這種推理模式。(事實上,如果我們有能力分辨 a 和 a",那麼條件句是否成立就不是那麼顯然的了。)此外,另一個輔佐相似性可以反駁簡單邏輯推理的事例是,如果我們的推理模式中包含「如果 A 是沙堆,那麼 A 再多 n 顆沙子也是沙堆」的推理模式,那麼我們就無法理解為什麼我們會把游泳池中的一個小沙堆稱為沙堆,而不把填滿游泳池的沙稱為沙堆了。(注意到這裡後者實際上是前者的一個嚴格擴充,是在沒有改變前者的排列方式的情況下完成的,所以不存在改變排列的問題。)於是事實上我們賴以推理的模式還是相似性而不是單純的數量關係。

認知不可分辨不是等價關係,因此,雖然我們有asim bbsim c,但是我們未必會有asim c,進而,無法使用前提asim c
ightarrow(P(a)leftrightarrow P(c))來得到 c 和 a 具有相同的性質。


但是,由於我們分別能夠得到結論P(a)leftrightarrow P(b)以及P(b)leftrightarrow P(c),根據 biconsitional 運算元的傳遞性以及組合論證的 cut 規則,我們能進一步得到P(a)leftrightarrow P(c)。但是這合理么?我們得到前面的結論,是因為我們處在只考慮 a 和 b 的狀態中,這時,我們不能分辨他們兩個。而我們得到後面的結論,則是因為我們處在只考慮 b 和 c 的情況下。但是我們的認知精度卻有可能讓我們分辨 a 和 c。將兩個論證結合起來用到了cut 規則,而在這種情況下,使用 cut 規則是顯然不合理的:我們不能將兩個不同語境中的論證的結論結合起來。

考慮這個論證:波長為 440nm 的光和波長為 442nm 的光顏色相同,波長為 444nm 的光和波長為 442nm 的光顏色相同。因此,波長為 440nm 的光和波長為 444nm 的光顏色相同。但事實上我們是能夠分辨這兩者的。或者,將前面的謂詞視為「和波長為 442nm 的光顏色相同」,這樣,我們就有「A、B都和波長為 442nm 的光顏色相同」,但是「A、B顏色不同」的結論。進一步,我們或許可以得到一個新的反直覺的規則:就算 a、c 分別和 b 在是否擁有 P 性上是同一的,但是由於這是基於各自語境的,所以我們不能認為 a、c 在是否擁有 P 性上是同一的。因為後面這個命題是一個應用了跨語境的 cut 規則的論證的推論。(這個推理有如下假定:人類能分辨波長差大於 3nm 的單色光,而不能分辨波長差小於3nm 的單色光。注意到這個地方的數值並不重要,只是為了舉例。)

如果我們在這裡否定了 cut 規則,我們就要問,在什麼情況下我們應該否定 cut 規則,或者,在什麼情況下使用 cut 規則是合適的?顯然,在跨語境的情況下使用 cut 規則是有風險的。而在保持語境單一的情況下(比如單一的數學語境中),使用 cut 規則就是安全的。但是進一步產生的問題是,如果我們否認日常語境中的 cut 規則,那是否意味著任何時候我們在日常生活中都不能進行長推理呢?如果不是,什麼情況下日常生活中的語境是對 cut 規則安全的呢?

原本我想到了一個技術性的答案,不過我現在考慮了另一個情況,就是,凡是涉及人類認知的語句,當我們進行長推理的時候都必須慎重,因為人類的知覺是不一致的,或者說,不協調的。比如說:我們對比下午兩點和下午四點時同一個對象的影子,可以發現影子長度有一個明顯的變化,但是我們如果盯著影子看,會感覺到「影子是不動的」。這個時候,雖然我們可以通過實際情況來修正我們的經驗,但是我們依舊無法排除「影子是不動的」這個初始的經驗判斷。類似的情況還包括對於大多數連續細微變化的判斷。但是,我們日常語言中包含了許許多多這類描述我們直接認知經驗的語句,我們不可能排除這些語句,而只可能在覺察到異樣的時候,回過頭反省自己得到某個悖論的過程是否引入了一種跨語境的長推理。

2 否認翻譯的理想語言方案

Russell 和 Frege 會認為,產生這個悖論是因為我們的自然語言有嚴重的缺陷。我們需要理想語言而不是自然語言。

事實上,對於不確定陳述,除了可以認為是語句本身的真值不確定,也可以認為是需要在在兩個極端之間插入第三個摹狀詞,比如說「不高不矮」、「不胖不瘦」、「不貧窮也不富有」、「不紅不黃」……

當然,正如前面的三值邏輯那樣,如果僅僅是添加謂詞,只要謂詞是有窮多個,那麼不同的謂詞之間的差別就依然存在。但是,如果我們採用連續的謂詞,或者,採用一個以實數(事實上有理數就足夠了)作為第二個變元的二元謂詞呢?

在這種情況下,我們並不將模糊性處理為原子命題真值的取值,而將其處理為另一種形式。以光線為例,我們並不說 Red(a),而說 Red(a,0.7)。也即,將模糊性放在謂詞上而不是命題上。同時,如果Red(a,0.5)=	op,那麼Red(a,0.49)=ot

但是這種處理方式有一個問題:
如果我們進行劃界,比如,認為Red={xmid exists y>0.5 使得Red(x,y)=	op },那麼就會產生和劃界問題完全一樣的後果。而如果我們不這樣處理,那麼實際上我們就是徹底否定了「紅」這個謂詞,而將它拆分成了連續的不同程度的紅。或者說,僅僅是不同名稱的色塊,而不能告訴我們到底哪一塊是日常語言意義上的紅,而哪一塊不是。但是,這種拆分是有意義的,至少從 trope 理論的角度上來說是這樣。

此外,考慮到儀器必然會有精度限制,精確語言方案實際上是無法實行的:由於我們不可能找到沒有誤差的儀器,所以我們永遠不能根據數值判斷一個數值在邊界上的對象到底屬於哪一邊,並且我們不能簡單地接受這個對象屬於某一邊,因為如果下一次它被檢測出屬於另一邊的話,那麼它就同時具有 P 和非 P 兩種性質,而這顯然是矛盾的。並且物理學的結果告訴我們,這種檢測錯誤是不可避免的。這就和前面劃界方案面臨的問題類似。

另一種精確語言方案支持 trope 理論,對於每一個a_i,我們設計一個專門的謂詞P_i來表達a_i的P 性。但是如果我們採用這種方案,就會和上面一樣喪失原本使用 P 這個謂詞所要表達的概括性的作用。然而,這種方案可以視作一種對於語言的規範性重建,並且在事實上比前面的方案更為合適。

3 從語境主義的角度上接受悖論

接受結論就是按照字面上的意思:接受悖論。但是如果我們同時接受P(a_0)
eg P(a_0),那麼我們的信念顯然就是不一致的。因此,邏輯的規範性我們不應該接受悖論。而這個悖論本身的結構就保證了它在兩個方向上都是成立的,因為如下兩個命題是等價的:

  • forall iin{1,ldots,n}, P(a_{i-1})
ightarrow P(a_{i}).
  • forall iin{1,ldots,n}, 
eg P(a_{i})
ightarrow 
eg P(a_{i-1}).

也即,從一個方向上,我們會得到所有人都是禿頭,而從另一個方向上我們會得到禿頭不存在。


另一方面,以禿頭悖論為例,如果我們真的考慮一個人一根頭髮都沒有的情況,那麼就不會說「如果他有一根頭髮不算禿頭,那麼就算他一根頭髮都沒有也不算禿頭」,而至少會出於情理說:「就算他有一根頭髮的時候不是禿頭,當他一根頭髮都沒有的時候也應該是禿頭了」。


或者,考慮這樣的情況:大多數情況下,我們不會把一個堆成正四面體狀的四個等大球狀沙粒稱為沙堆,但是我們會說:「即便這種情況下四個依然構成沙堆,但是去掉一個也就無論如何都稱不上堆了 」。又或者,考慮兩個和一個的情況,「沙堆至少是複數個沙粒吧,兩個怎麼能稱為沙堆呢?」雖然實際上我們不會認為兩粒沙子和一粒沙子會構成沙堆,但是在特定的情況下,我們認為這構成了某種必要條件。因此,這可以視作不存在一個大邊界,而僅僅存在一些特定的情況下存在一系列的小邊界。因此語境主義的另一個方向是為超賦值方案提供辯護:我們有一個作為整體的邊界,這個邊界並不存在於任何兩個對象之間,而是在不同的語境下出現在不同的位置上。


個人認為在特定語境下接受悖論是沒問題的,但是一般來說並不是接受對於頭尾兩項的悖論,而是接受關於某個中間的項的悖論。根據語境主義解釋,當我們說一個對象既可以視作 P 也可以視作非 P 的時候,是由於我們的語境不同,並且,永遠都不是同時視作 P 且非 P,因此,這也並不構成矛盾——在每個將其視作 P 或者非 P 的語境中,我們都是一致的。而當我們轉換語境的時候,實際上我們轉換了頭腦中的整套概念。就像是 Gestalt 圖中,假設我們有一連串的從鴨子變成兔子的圖片,那麼對於正中間的那個圖片,我們將其視作鴨子還是兔子,完全取決於我們是從鴨子開始看的,還是從兔子開始看的。甚至有可能,看到最後,我們會把鴨子的抽象畫看成兔子,而將兔子的抽象畫看成鴨子。這也不是不可能的。當然,我們不可能把實際上的兔子看成鴨子,也不可能把實際上的鴨子看成兔子。

結論

堆垛悖論不是一個悖論,而是一組悖論。在不同的情況下,導致悖論的原因是不同的,進而,解決悖論的方案也是不同的。在這裡我考慮三個思路。

  1. 條件句成立的前提為兩個狀態的差別非常小,以至於認知不可分辨,並且假設對於所有的 i ,a_isim a_{i+1}。但是認知不可分辨是語境依賴的,雖然在一個小範圍內的對象是認知不可分辨的,但是通過 cut 規則進行推理會導致論域擴大,進而甚至包括兩個認知可分辨的對象,從而導致矛盾。因此我們應該拒絕跨語境的 cut 規則。
  2. 針對認知可分辨的情況,拒絕接受前提中對應的條件句。根據超賦值方案,我們的理解可以是:每一個條件句都是真的,但是其中有很多不是超級真的。從某種角度上來說,接受界線的存在也不是不可以的,當然更好的理解方式是認為,界線被「稀釋」成了一個一個的子界線,其中作為每個子界線的命題的可接受度都不為 1。但是引入可接受度就會導致排中律失效。因此討論必須以另一套語詞進行。
  3. 考慮語境,我們可以認為處於中間位置的元素同時具有兩種屬性,但卻並不構成矛盾。而這一種思想推廣到極致就是在特定的語境下接受結論。但是認為由於結論成立的語境不同,所以不構成矛盾。從形式上來說,並不是 F(a) 和 -F(a),而是 F(a,c) 和- F(a,c")。另一方面,也可以視作處於中間位置的元素同時具有兩種屬性。

有正經問題請私信,關閉評論。


同意@羅心澄 的專業的回答。

我來畫蛇添足一下,因為在其他的回答里,我還看到了一些不恰當的例子,這些例子不適合用於在類似的討論中舉例,事實上,部分回答者自以為存在的一些邏輯上的困難其實在專業人士的眼中並不存在困難。因此我覺得有必要更嚴格地界定哪些問題存在題主所說的「堆垛悖論」,哪些不是。如果出現了這樣的「堆垛悖論」,科學家會想著用哪些方法去解決這些困難。

我從@羅心澄 所說的三種大類中前兩種情況出發,具體地談一下有哪些可操作的方案來解決這一困難。

其一,很多問題本身其實就有更精確的標準劃界,甚至有的問題,即使每一步只讓系統產生小的變化,系統也可能在某一個確定的點發生性質上的突變。


我想先舉一個幾何相變的實例(Percolation theory),來說明有的改變雖然是一個、一個逐步發生,但是轉變卻就是在一瞬間,那個瞬間是可以被精確捕捉到的,沒有定義上的模糊性。現實生活中的許多「突變」其實更接近這樣的情況,而不存在從 N 推導到 N+1 時的那種上邏輯的困難。

這種滲流轉變的瞬間是可以被精確找到的。如上圖,想像在一塊很大的無限延伸「田」字格上,有水可以從一側流到另外一側。現在不斷隨機剪斷(堵塞)其中的一些邊,那麼當剪斷(堵塞)的邊達到一定的比例(該比例顯然大於 0)的時候,那麼水就會無法成功的流到另外一側,這個定義也是清楚的,而轉變就是突然發生的,並不是每減小一條邊流都會減小;也不是直到全圖沒有任何一條能夠讓水流通的邊了,流才減小到 0。雖然看起來每一次都是堵塞掉一條邊,但是轉變就是會在某個值處發生。這個堵塞的比例是可以精確求解的,而兩種不同的狀態也是可以精確定義的。這一類的問題都不完全存在「堆垛悖論」。

除了幾何相變之外,我們還可以考慮相變的過程,即討論從一個物相過渡到另外一個物相的轉變過程,例如冰融化為液態水,液態水的蒸發。這些過程都是相變的問題。

保羅·埃倫費斯特的相變分類中,有一類「一級相變」,在一級相變中,我們看到的曲線是如下圖中第二幅所示的,這種轉變突然發生,曲線並不連續,因此分辨這兩個相併不存在多大的困難。伴隨著一級相變,往往還有體積的變化和熱量(相變潛熱)的吸收或釋放。

(圖片來自於:

(圖片來自於:Phase diagrams describing the change in magnetization (M) as a function of temperature (T). : Magnetocaloric materials: Strained relations : Nature Materials : Nature Publishing Group):

當然,如果不是一級相變而是二級相變,情況就會複雜一點,例如上圖中的第一幅,滲流轉變的曲線也與此類似。而在識別兩個「相」的時候,並非總是那麼簡單。如果不是對物理背景比較清楚,也會有人認為上圖左圖中轉變點並非是 Tc,而是在 M = 0.5M* 的時候取得,因此在舉例子的時候,有的人一來就會舉相變的例子,特別是連續相變(二級或者更高級)的例子。

可是,現實世界裡的相變在描述相變的過程的時候,相的劃分並不存在定義上的困難,這是因為 Landau 的貢獻。Landau 用對稱的程度(序參量)作為一個相的代表,例如一塊冰有著固定的晶體結構,在一定的對稱操作下,晶體可以保持不變;而液態的水就更加無序,因而會更加的對稱,一杯水怎麼旋轉依然對稱,冰塊就不能在這麼多的對稱操作下保持不變。用「對稱性」(從數學的角度則是不同的群元)作為標準,因此相的轉變在很多情況下都變得很清晰。即使在液氣相變時,兩個物相都是無序的,看起來這個轉變沒有了對稱性的改變,但是仔細分析,這個轉變存在著「遍歷性破缺」,因此依然可以選出相應的序參量來刻畫這一轉變。

至於怎樣找到一個好的描述轉變的量,則是接下來要討論的問題。

順便提一句,在@羅心澄 的回答中所說的「群體判斷方案」,事實上就是統計物理中的系綜(Statistical ensemble)理論。

其二,更好的分類標準的選擇。

在@羅心澄 的回答中,有這樣一段話:

考慮到儀器必然會有精度限制,精確語言方案實際上是無法實行的:由於我們不可能找到沒有誤差的儀器,所以我們永遠不能根據數值判斷一個數值在邊界上的對象到底屬於哪一邊,並且我們不能簡單地接受這個對象屬於某一邊……

這個說法是有道理的,但是仔細再想想,總覺得還不能滿足。在我們現實中存在太多的分類問題並不是總是一維的,即使是「禿子」這樣的概念,我們面對一個光頭的小孩,我們也只會稱呼他為「小光頭」,而不會也認為他是「禿子」,因此一個分類問題很可能是有多個維度的。一旦出現多維度,則標準會難以確定,例如生物上「物種」的劃分,就有 27 種不同的定義(據維基百科)。雖然精確的語言方案無法實現,但是我們總是希望讓這個問題變成一個可以用邏輯處理的問題,即變成如@羅心澄 的回答中所說到的那樣的最基本的情況。因此需要從一大堆可能不那麼好的標準裡面選擇出最好的那一種(或者少量的幾種)來。

首先,我們預先假定所有的判斷標準在處理極端的兩個態的時候不太會出錯,只是在過渡的狀態上會出現問題。例如,假設分類器總能大體認出來精確的紅色和黃色,只是在從紅色轉變到黃色的道路上,有些不確定之處。以光的顏色為例,基本上可以認為只有波長發生了改變,這個轉變就是一維的。但是還有更複雜的例子,在一個男人變成女人的過程中,可能有許多東西都發生了改變。例如,我們要分類男性和女性,一種分類方案主張用長鬍子的多少來分,一種用胸圍的大小來分,還有的用性器官的種類來分。自然,我們很容易可以舉出例子來,這三種分類都有不恰當的地方,但是似乎這三種分類還是可以分出一個好壞來。那麼怎樣解決這個方案呢?在一個轉變的過程中,雖然我們知道精確的方案是不可能的,但是在可能的條件下,在這轉變的道路上,怎樣找到最好的那個變數,用來解決這個問題呢?

這裡介紹我最近看到的一個很簡單、但是又很有意思的方法。為了幫助理解,我這裡只簡單粗暴地用一個例子進行說明,這個例子有很多很多的不妥之處,因為在例子中的分類標準都有非常明顯的錯誤,可這個例子很誇張,可能會讓人有些印象,所以我暫時保留在這裡,如果我想到更好的再作些更改,而且我總覺得這個例子我還有許多言猶未盡之處。

在男人和女人之間,可能存在一些過渡的狀態,就像在紅色和黃色之間存在橙色那樣。我們希望選取的變數在取到兩種極端狀態的值的中間值的時候,能夠儘可能多的對應那些過渡狀態。例如,我們如果用鬍子的多少作為男性和女性的分類,這時候我們就應該選取「鬍子不太多、也不太少」的人來進行檢查,我們發現這其中可能有體內雄性激素水平較高的女性、也可能有還沒有發育的男性,甚至還可能有剛剛刮過鬍子的男性……因此,這時候我們抽取到男性跟女性之間的過渡狀態的人的概率是很低的,因此這個分類的方案不那麼恰當。同樣也很不恰當的還有胸圍,但是胸圍跟鬍子這兩個變數哪個更好呢,怎樣進行比較,有興趣的朋友可以考慮一下怎樣把這個問題轉變為數學語言。而換成性器官,則完全不同,當發現一個既有男性器官又有女性器官的人,Ta 可能是因為基因的緣故而造成了這樣的「中間態情況」,例如 XXY,當發現了一個既沒有男性器官又沒有女性器官的人,Ta 可能是因為手術變性的緣故而形成了「中間態情況」,因此用這個標準時,可能以更高的概率抽取到那些處在中間態的個體,我們會認為這個標準相對更好一些。在尋找沙堆的分類標準時,我們也應當去尋找一些刻畫沙堆的參量,幫助我們儘可能多的找到那些「像沙堆,又不算是沙堆」的情況。當然,不是所有的問題都能都能這麼方便的比較「好壞」,前面提到的兩個物種的劃分就是一個例子。

除此之外,為了找到最優的分類標準,還有許多可以採用的方法:

  • 在操作的層面上,最簡單常用的方法就主成分分析(Principal component analysis)的方法。
  • 對於更高維度的數據,要找到更好的分類標準,很可能會需要在 Isomap 上進行分析。
  • 除此之外,支持向量機 (Support vector machine)方法可以為我們提供更多種的、更加充滿細節的複雜準確的分類方案。

額,這個問題是怎麼成立的?如果他是用數學歸納法成立的,他的前提條件本來就不是每一步都成立的,比如你只有一根頭髮的時候,不是自然就少一根就禿頭了么。。。其他的也都類似如此
如果要遞歸或者數學歸納法的不得每一步的時候前提條件都要成立么,原來這些也是悖論么。。。。


一堆穀子之所以是一「堆」穀子,不是因為這堆穀子有多少數量,而是讓言者覺得那是一「堆」穀子。同樣一粒一粒加穀子,不同的人可能在不同時刻認為那是成「堆」了,這個「堆」,本來就是一個非量化的主觀量詞。這也能秉承精確原則進行計算、討論?

再加一個角度,任何一個人,對於"一堆穀子"的認知是不確定的,同樣的堆在一起的若干穀子,哪怕是同一時刻,也可能讓觀者覺得「這可以算一堆,也可以不算一堆」。

總之,「堆」的認定本身,是個宏觀概念,根本不存在一個二元分明的分界。而「一粒一粒」,是微觀層面的概念。微分與積分,並非單純的量的變化。

從宏觀上看,海水跟空氣是兩個東西,二者之間有分界,但從微觀上看,存在一個海水分子與空氣分子的二元分明的分界么。

總結,題目當中「如果 n 粒穀子不構成谷堆,那麼 n+1 粒穀子也不構成谷堆。」、「一個非禿頭少了一根頭髮也不是禿頭。」、「如果一個人不是富翁,那麼他多擁有一分錢也不是富翁。」並非絕對成立。

總存在一個n,n粒和n+1粒的穀子的時候,都既有可能讓人認為成堆,也有可能讓人認為不成堆;n根和n+1根頭髮的時候,都既有可能讓人認為是禿頭也有可能讓人認為還不算禿頭,n分和n+1分財富的時候,都既有可能讓人認為是富翁也有可能讓人認為不是富翁。


其實這個不是芝諾悖論,芝諾悖論的主要問題是無窮和有窮之間的不可調和的矛盾。


谷堆悖論本質上和忒修斯之船悖論是一樣的,利用的是不良好定義

例如谷堆就是一個不良好的定義,接下來我從這一點出發逐一擊破這些悖論:

谷堆與有多少顆穀子沒有關係,因為如果所有的穀子都平鋪在地上,或者說我在地上畫一個很大的棋盤格,每個格子里只能放一顆穀子,那麼無論放多少穀子都不能形成谷堆。

所以我們將谷堆定義為,至少有一顆穀子是摞在其他穀子上的,而不是在地面上的,這時候我們可以輕鬆的得到在第放幾顆穀子的時候得到了一個谷堆。


我們將禿頭定義為頭上沒有一根頭髮的人,所以對於頭上只有一根頭髮的人來說,只要他失去了這唯一的頭髮,就會成為禿子,否則就不是。


堆垛悖論的關鍵在於很多概念及判斷標準都是模糊的,模糊的意思是沒有客觀標註,判斷是主觀的,而主觀就意味著對於同一個考察對象,不同的人在不同的時候會給出不同的觀點。比如,相對宇宙而言,地球只是個小沙粒而已。另外,到底多少人(1個?10%?66%?)達成的共識具備權威性,也同樣是個模糊的問題。
對於一個並沒有客觀標準的問題,不同程度的觀測對象的結果頂多是不同答案的支持人群比例不同,所以並沒有什麼矛盾。


為什麼如此多的人認為這些悖論都是無聊的文字遊戲呢?!正是這些悖論才有討論的意義,非黑即白的問題既然已經有了確定的答案,還有什麼可討論的呢。辯題向來都是左右皆可的。

正式答案如下:
個人淺見。如有冒犯,還望海涵。

大神們用了過多的數學概念,卻錯過了從本質上來剖析這個問題:
無論「谷堆」還是「禿子」,都並不是「數學概念」!所以用量化的數學語言去定義本身就是無法做到的。
精確的數學語言只能表述精確的數學概念。諸如谷堆等事物的定義,與數學不是同一領域。


另外,如果一定要用數學去表述堆垛類問題,我認為用概率論會更合適。舉例來說:
我愛 一個美女。她稍微變醜一點點,是不會改變我愛她這個事實的。這是否說明世界上沒有我不愛的女孩呢?不是的。一個女孩越丑,我愛上她的概率就越小。
如果一個人撒一把隨機數量的穀子在地上,然後我們問另一個人:這是谷堆嗎? 很明顯,穀子的數量越大,這個人認為這可以稱為谷堆的概率就越高。若扔下的穀子數量是1,我們可以認為它被看作是谷堆的概率趨近於零。若穀子數是1億,那麼概率會趨近於1。


結論:
1.數學語言只能做到精確的定義數學概念。對其他領域的定義會顯出無力。這不代表不能描述,而是只能描述其相關性,卻不能做出是與非的定義。
2.對於堆垛類概念,使用概率論領域內的數學語言能更貼切的描述。

以上。
非數學專業,妄言這麼多,望指正。


這個問題數學上已經解決了啊。。模糊數學啊。。

就以禿子為例子說吧:

以A君頭頂上的毛囊數為基準,比如113000個吧(別告訴我數得清頭髮數不清毛囊),那麼我們可以構造一個隸屬度函數,高斯型的也好、線性的也好吧。

就以線性隸屬度函數為例吧:

那麼,A君如果有113000根頭髮,對於禿子這個概念的隸屬度為0,對於非禿子這個概念的隸屬度為1;

A君如果有0根頭髮,那麼他對於禿子這個概念的隸屬度為1,對於非禿子這個概念的隸屬度為0;

A君如果有56500根頭髮,那麼他對於禿子和非禿子這個概念的隸屬度均為0.5;

......

那麼你問我,如果A君有56500根頭髮,他是禿子還是非禿子,我回答你:

他是0.5個禿子,0.5個非禿子。

那你問B君是不是禿子,去數B君頭頂的毛囊去。。

人類已經認識小數上千年了,有的時候有些科目真的該與時俱進了。


谷堆悖論弱爆了,我給大家來一個超級強化版的谷堆悖論,看看各路大神是如何解決這個強化版谷堆悖論的:
假設有1個超級大的谷堆,含有無窮多的穀粒,按集合論的說法:該谷堆中所有穀粒的基數為阿列夫0。連續執行下面的操作:從谷堆中拿走一粒穀子,剩餘穀子的基數為阿列夫0,從谷堆中拿走兩粒穀子,剩餘穀子的基數仍為阿列夫0,從谷堆中拿走三粒穀子,剩餘穀子的基數仍為阿列夫0……
因此可以得出結論:無論從谷堆中拿走多少粒穀子,谷堆中剩餘的穀子的基數總為阿列夫0。
所以,將谷堆中所有的穀子全部拿走,剩餘的穀子的基數還是阿列夫0。
但這明顯是一個矛盾,因為將所有的穀子全部拿走,谷堆中剩餘的穀子的基數為0,所以有0=無窮。
請問這個矛盾怎麼解?修改


其實人不是通過數量來判斷的穀粒和谷堆,也就是說不可能通過數量的變化反映出這到底是穀粒還是谷堆,人在判斷某一事物時不是用簡單形式來判斷的,還要藉助周圍環境與經驗。

比如說沙粒與沙漠,一粒沙是沙,百萬噸沙也是沙,什麼時候變成一把沙子,沙堆或沙漠呢?
不是看個數,是看人的經驗和環境,視覺上,當沙粒的視覺表現形態可以被以人體尺度宏觀感知到是三維立體形狀的時候,經驗告訴人,這是沙堆。
當沙粒的視覺表現形態超過人體尺度達到一望無際時,人可能會猜測這是不是沙漠,但如果加上氣候乾燥,空氣炎熱,甚至能看到仙人掌和沙漠動物,人根據經驗很快就能判斷出這是一個沙漠。

判斷一個事物靠的不完全是其本身的性質,還要考慮環境的影響,個人經驗主體視角和所選尺度的大小來綜合判斷。

回到穀粒上來,如果螞蟻有人的經驗體系,螞蟻若感知到一粒穀子,去觀察它,可能和人看到石油罐的大小體積感覺差不多,那麼只要一百粒,一千粒穀子堆積起來,螞蟻可能就要認定它看到谷山了,人的判斷也是如此。

再看頭髮,幾根頭髮的人從宏觀來看,只要在正常的人體尺度距離觀察,那可以忽略不計,這個人被判斷為禿頭,或者預判為禿頭。頭髮的數量不是問題,頭髮是如何排列的,是如何影響人去觀察的,是什麼視覺形態的,這是問題。

比如頭髮數量很多,但是分布稀疏到頭皮顯而易見,乍看還是容易被認為是禿頭的。

再次聲明,人不是完全通過事物本身的抽象結構去認識事物的,總要結合環境,經驗,還有觀察者選用的尺度,方法,才能判斷一個模糊的概念。


事物本身沒有變,都是那幾個基本粒子,基本作用力。是形態的變化,觀察角度的變化,經驗的變化,才會有這麼多彩的世界,大自然的材料根本就沒有變,變的只是它組建東西的方式,還有我們走過的風景。


看了這麼多回答,沒有一個說到點子上的。

首先,此悖論本身就是一個偽命題。其內涵就好比「一把精確的直尺,竟然無法測出物體重量」,這能叫科學?

關鍵詞:定義

1、討論任何問題,必須先明確定義,否則就是雞同鴨講。
2、世上的定義可以分為兩種:精確定義模糊定義
比如「米」,這是精確定義,因為多長就是多長,非常具體而明確。
而「長」,則是模糊定義,因為它是模糊的,甚至是變化的。
3、不同類型的定義,是不能放在一起說的,因為沒有意義。
孩子問你,什麼是「大」?你能回答他「體積超過1立方米就叫大」么?憑啥是1立方米,而不是1.1立方米啊?孩子問你什麼是「紅色」?你能給他一個RGB的取值範圍,告訴他這個範圍內的都叫紅么?(生活中無數人因為綠色和黃色爭論不休,最後乾脆連什麼嫩綠、草黃等都整出來了。原因就在於顏色也是模糊定義,不能精確化。)
4、硬要放到一起也行,但必須把模糊定義進行量化,使其轉變成精確定義。
比如「長」,如果事先確定好,在本次討論中,我們把超過1米的都叫長。那麼就相當於把「長」這個本來模糊的定義,改成了一個精確定義。那麼在接下來的論述中就可以把「米」和「長」這兩個定義放在一起說了。

回過頭來,我們再看這個悖論,就是把精確定義和模糊定義放在一起亂搞,結果搞出個無法自圓其說的東西,美其名曰「悖論」,實在是有辱「悖論」二字的科學含義。所以我才說,這就好比「一把精確的直尺,竟然無法測出物體重量」,根本不是一個體系里的東西,硬放在一起搞,能不亂么!


這個問題讓我想起一個化學方面的事情。就是測一個毒藥的致死劑量,用讓實驗體的一半死亡的劑量為標準。然後當時學語音學的時候,對一個介於ba和ga之間的音節,有些人認為是ba,有些人認為是ga。所以如果要界定這種邊界模糊的概念,我覺得可以找一堆人來做判斷題,這樣你就可以不出意外地得到一條越靠近某一數量,回答就越統一的曲線。
所以你的悖論一開始就被否定掉了。。。比如一堆穀粒,在取到某一程度之前,所有人都會認為它是一堆,但是再取掉一顆,就會有很小一部分的人認為它不是一堆,然後以此類推。
離題有點遠。不會組織語言,不過大概就是這個意思。不好意思。


就算不用數學也能很簡單地解答啊……

以禿頭為例,從有頭髮開始到一根都沒有。每拔一根就拍一張照片,那所有照片按照頭髮多寡排列,第一張肯定不是禿頭,而最後一張一定是禿頭。從第一張開始,肯定在某一張開始,覺得是禿頭(記為n)。當然,一萬個人心目中有一萬個哈姆雷特,每個人對於n的感覺都不一樣。最後把各人的n收集一下,整理出最有說服力的n(數學上就是取極限,而即使極限不存在,都可以取所有收斂值的平均數),完了……

用哲學來講就是量變到質變……

用物理來說就是混淆了時間段和時刻的定義,就是說禿頭既是一個過程(頭髮變少)也是一種狀態(頭髮少)。拔頭髮是一個「禿」的過程,最後導致「禿」這個結果。而在這個過程中,肯定存在某一條「劃時代」的頭髮,拔之前不叫禿,拔之後就叫禿………讓人最不爽的可能就是這根頭髮的存在:明明是一模一樣的頭髮,憑什麼就是「劃分禿頭的關鍵」。

所以禿頭悖論的核心是對「量變不會導致質變」的錯誤理解,或者是糾結於「量變何時導致質變」。而這都是微積分最基本的東西之一………例如第一個問題其實就是認為「收斂數列的和必然收斂」……第二個問題其實就是連續函數的零點定理(我不知道是不是這麼叫)


可以通過模糊數學解釋,本人學問不高。
不過這大概是個方向


只有大於等於四粒才是堆垛。證畢。


作為一個需要辯解的命題~裡面含有有富翁 谷堆~禿頭等日常生活中的用語,這樣的日常用語是一個模糊的概念 ,你現在要用邏輯學的經典邏輯去論證它,就必須明確規定 谷堆,富翁,禿頭等精確內涵,
否則模糊概念的邏輯推理 將會由於模糊概念內涵的不確定性而產生悖論


自問自答冒然跑來似乎有些不禮貌,不過問題蠻有趣,就試著從別的角度談一談。

先拋結論:堆垛悖論不是真正的悖論,僅僅是「反直覺」

這類問題屬於分類問題
1)f(x) --&> {a1, a2, ...}
x 在這裡是穀物的數量,富翁的財富,光波的波長等等。函數f則對其判斷為某一類別:堆垛/非堆垛、大富翁/小富翁/普通人/窮人,紅色光/藍色光/.../紫色光。

人們希望分類函數能滿足這樣的性質:相似的屬於同一類:
2)if |x1 - x2| &< e then f(x1) = f(x2)

當x取連續值而分類有限時,滿足條件2的函數f不存在,自然不能保證從 n 顆穀粒不叫堆垛推導出n+1顆穀粒也不是堆垛。

讓人感覺到困惑的是性質2居然不成立,或者說完美的分類不存在。


要麼事物本身有一個天然合理的界限,比如正數,零,負數的分類法,還有@傅渥成答案中的相變。對於堆垛問題,這樣的天然界限也不存在,那隻能容忍世界的不完美,或者用數學語言,容忍誤差。

回到題目,所謂悖論,僅僅是穀物數量、擁有的財物、光的波長本身並不存在一個天然的界限使得他們的性質發生突變,而人又需要將其粗暴地分為有限的幾類罷了。

解決辦法就是尋找一個好的函數 f ,使得邊界地區的分類錯誤不造成什麼影響。(有時需要改變角度從別的角度進行分類,而新的角度有合理的劃界)。以題主所舉法律規定為例,數額的劃分雖然影響到案件性質,但如果各級別判罰上下限相銜接則問題並沒有初想那麼大。假設數額巨大關3-5年,數額特別巨大關5-7年,那一個人實際判處5年徒刑的,是數額巨大還是數額特別巨大又有多大影響呢?


「如果n粒穀子不構成谷堆,那麼n+1粒穀子也不構成谷堆」
這個前提我不承認。
還有問題嗎?


手機碼字無力。。。。
有一門數學叫模糊數學。對於漸變的量,使用隸屬程度這個函數表示。
就這樣。


推薦閱讀:

TAG:哲學 | 悖論 | 邏輯學 |