可能是計算機理論領域十年來最大的突破

2021-07-07 04:44:42 字數 1659 閱讀 5853

撰文 阿德里安·丘(adrian cho)

翻譯 丁家琦

這幾天一直謠傳所謂的「複雜理論」(complexity theory)領域出現了數年一見的大進展,可能會給網際網路領域帶來新的曙光。這麼說沒錯——因為新的突破與網路之間的比較有關,正可以應用於人與人之間的網際網路聯結。芝加哥大學的數學家與計算機科學家拉斯洛·鮑鮑伊(lászló babai)發現了一種數學方法,可以用比之前少得多的步驟來判斷兩個網路是不是完全相同的,不管這些網路有多複雜或纏結。計算機科學界已經炸開了鍋,因為很多難以解決的問題最終都可以歸結到比較兩個網路是否相同這一任務上。

「如果這一方法是對的,它可能會成為計算機理論領域十年來最重要的成果。」麻省理工學院的計算機科學家、部落格作者斯科特·阿倫森(scott aaronson)說。

所謂複雜理論,從根本上說就是研究哪些工作可以很容易地用計算機完成,哪些工作不能的理論。在複雜理論中,最關鍵的事情是搞清楚隨著輸入資料的增長,解決乙個問題所需的步驟會以什麼樣的方式增加。舉個例子:如果你想知道乙個給定的數,比如983或105227是不是素數(即只能被1和它自己整除的數),那計算機所要進行的步驟隨著給定數字位數的增長就相對比較緩慢,大體上以類似n^2的速度增長(n為位數)。像n^2這樣的表示式被稱為多項式(polynomial),因此該問題就被稱為可以在「多項式時間」內解決,複雜度類別為p。

而另一方面,如果你想要把乙個數,如21112331分解質因數,即分解成質數相乘的形式,到現在為止還沒有人找到乙個可以在多項式時間內解決該問題的演算法。因此,分解質因數被認為是乙個更難的問題,被歸類到更寬範圍內的「np」問題之列,即「不確定性多項式」(nondeterministic polynomial)問題。簡單來說,對於np問題,隨著輸入資料位數的增加,所需步驟會呈指數式增長,如2^n,它增長得比n^2快得多(舉個例子,100^2只等於10000,而2^100則超過了10的24次方)。

而現在,鮑鮑伊找出了乙個新演算法,將乙個原本被認為屬於np的問題變成了較為容易的p問題。問題是這樣的:無論是傳染流感的人群,還是與生物體發生相互作用的蛋白質,都可以抽象為一系列的點(計算機專業術語稱為「節點」,node),它們之間的相互關係則用連線點的直線(稱為「邊」,edge)來表示。由於節點可以被任意地拖來拖去,所以即使是兩個看起來完全不同的圖,其連線方式也可能是完全相同的(見下圖)。所謂的「圖同構問題」(graph isomorphism problem),其主要任務就是確定兩個圖究竟是相同的,還是不同的,而鮑鮑伊宣稱已經找到一種新的演算法來解決這個問題。

不過,出乎意料的是,儘管我們生活中到處都有網路和圖,鮑鮑伊的新演算法的應用範圍卻不會很大。阿倫森說,現有的演算法已經可以非常快速地解決大多數圖的同構問題了,如果鮑鮑伊的新方法成立,也只是證明少數極為複雜的圖也能用高效的方法處理。複雜理論中最大的問題,是「np」型問題是否真正不同於「p」型問題——研究者通常認為回答是肯定的,否則類似網際網路加密之類的技術就會變得極其易受攻擊,但到此為止還沒人能嚴格證明np≠p,鮑鮑伊的成果連這個問題的邊都沒挨到呢。

那麼鮑鮑伊的新演算法的意義在何處呢?阿倫森說,它真正的成就,是把乙個關鍵問題從難題轉變成為了簡單問題。圖同構問題曾經一直被認為是乙個非常古怪的問題:它是乙個難題,但其本身一些特性又與一些簡單問題相關;而到了現在,鮑鮑伊直接把它變成了乙個簡單問題。

當然,他的工作還得經過其他研究者的檢驗。他於11月11日在芝加哥大學做了一次報告展示他的演算法,在24日還將再做一次。阿倫森說:「我們還得看看他的演算法中的細節。要知道,即使是鮑鮑伊這樣的科學家,也是可能犯錯的。」

計算機理論

作業系統跟計算機硬體是很大的關聯性,所以了解計算機理論對於學習 linux是有好處的。以下內容均摘自鳥哥的私房菜一書 計算機其實是 輸入指令與資料,經過 處理器和邏輯單元運算處理 後,產生或儲存成有用的資訊。簡單來說只要你有輸出裝置和輸入裝置,並且輸入資料讓機器產生資訊,這就可以叫做計算機了。計算機...

16 計算機理論

1.簡單語言 遞增語句 increment statement 遞減語句 decrement statement 迴圈語句 loop statement 三種語句可以組成 各種巨集 marco 巨集再組合。2.圖靈機 turing machine 磁帶tape b和1 讀寫頭 read write ...

計算機理論 計算機系統硬體總結

1 軟體。具有特定順序的資料和指令的集合 2 硬體。組成計算機的物理裝置 1 運算器。進行算術運算和邏輯運算。2 控制器。控制程式執行 處理中斷異常。3 儲存器。儲存資料。4 輸入裝置。滑鼠,鍵盤等。5 輸出裝置。顯示器,音響等。其中,運算器和控制器合稱 處理單元 central processin...