量子實驗衞星有何用(上)︰量子糾纏與貝爾測試

量子實驗衞星有何用(上)︰量子糾纏與貝爾測試
Photo Credit: China Daily / via REUTERS / 達志影像

我們想讓你知道的是

中國成功發射了全球首枚量子科學實驗衞星「墨子號」,將會進行數個長距離實驗,包括探究量子糾纏現象的「貝爾測試」。

在上個星期,中國成功發射了全球首枚量子科學實驗衞星「墨子號」,將會進行數個長距離實驗,包括衛星對地面的量子加密通訊以及探究量子糾纏(quantum entanglement)現象的「貝爾測試」(Bell test)。

量子加密通訊被譽為是牢不可破(hack-proof)的加密方法,能夠絕對保密,到底是否屬實?通訊的原理又是甚麼?要理解這些問題的答案,首先需要明白一點量子力學。

當然,絕大部份人——包括筆者——均沒有量子力學方面的專業知識,難以了解技術細節。不過,要知道大概發生甚麼事,亦非絕無可能——只要你準備好接受量子世界各種古怪現象。

無人明白量子力學?

量子力學是現代物理學的一大支柱,也是最成功的理論之一,但其描述的世界讓人覺得離奇。例如在量子力學的世界中,粒子的「行為」不像古典物理學般井然有序,物理學家只能夠以機率去描述結果。

對量子電動力學有重大貢獻的物理學家費曼(Richard Feynman)曾說︰「我想我能夠說無人明白量子力學」(來自其演講《The Character of Physical Law》第6部份,亦見於其後出版的同名小書)。

最主要的原因在於,物理學家嘗試以量子力學描述粒子的特性,而粒子非常微細,遠遠小於我們日常生活可接觸的事物。在這個異常細小的尺度中,人類透過經驗獲得的「常識」再不適用,因此雖然物理學家能以數學公式計算結果,成功預測粒子的「行為」,但仍然感到難以想像。

然而宇宙並未遵照我們的意願運作,電子的軌跡也不按人類是否理解來決定,因此讀者應接受物理學家的實驗結果,而無須想像那些粒子「實際上」是如何——這只會是無意義的嘗試。

另外,本文亦會忽略很多細節,甚至只陳述發現而未有解釋。這除了是為行文順暢及方便外,更重要的原因是筆者本來就不太認識,有興趣的讀者請再自行搜尋相關資料閱讀。

量子糾纏

正如上文所說,量子力學非常古怪,連愛因斯坦(Albert Einstein)也感到難以接受,希望證明量子力學只是「不完備」的理論——有些隱藏的物理現象、特性未被發現,以致量子力學所預測的結果看起來是如何古怪和違反決定論。

1935年,愛因斯坦連同物理學家波多爾斯基(Boris Podolsky)及羅森(Nathan Rosen)發表論文。論文中三人提出一個思想實驗,旨在說明量子力學的理論中,必然存在「隱藏變數」,否則會有超光速的通訊,違反了狹義相對論。

這思想實驗涉及一個稱為「量子糾纏」的現象,粗略來說,當兩個或以上的粒子直接進行交互作用時,整個系統會進入量子態——無法化約成個別粒子,只能視作一個整體。但當被量子糾纏的粒子跟外界互動(例如被測量)後,這個現象就會消失。

量子糾纏的神奇之處在於,假如兩個粒子透過量子糾纏連結後,分別被帶到兩個地方——例如一個在地球,另一個在火星——然後在地球及火星上的人分別測量這兩個粒子,所得的結果總會相反。

EPR悖論

為方便起見,以下忽略理論細節,就當粒子只有兩種可能「顏色」︰紅色和藍色。讀者必須留意,以下的「顏色」只是個比喻,代表相關的物理特性,並不代表粒子有這些顏色。

那麼量子糾纏後的兩個粒子,總會是一紅一藍,而且在測量之前我們無法確定哪個是紅、哪個是藍。而且,即使兩個粒子相隔極遠,比方說超過一光年,理論上也會有同樣現象。

根據量子力學的主流詮釋,當我們在測量於量子態的粒子之前,粒子並沒有確定的特性(包括速度、動量等),只有一個代表測量結果機率分佈的函數。

愛因斯坦等人就質疑︰假如真是這樣,量子糾纏下的兩個粒子就必須「互通消息」,才能確保兩個粒子的「顏色」不同。然而萬一兩個粒子相距極遠,它們「互通消息」的速度就會超越光速,違反了狹義相對論。

他們於是得出結論︰這些粒子的「顏色」本來就確定好——就像把一對手套分別放進箱子,當你打開其中一個看到是左手手套,自然知道另一箱子中的是右手手套——換言之,是量子力學本身的不足,才使物理學家以為粒子在測量前沒有確定的「顏色」。

這個思想實驗,後世稱為EPR悖論(以三人姓氏首字母命名)。愛因斯坦因此認為,量子力學中必然有「隱藏變數」,物理學家一旦發現了它們就能夠完全確定粒子的特性,避開了量子力學帶來的隨機性。

用另一個比喻︰當科學家戴眼鏡看微觀世界時,發現影像模糊。愛因斯坦所支持的「近距唯實論」(local realism)認為這源自鏡片本身的問題,而量子力學的主流理解是「微觀世界的確如此奇怪」。

貝爾測試

看起來,愛因斯坦、波多爾斯基及羅森的說法甚有道理。問題在於,量子力學以機率分佈函數計算所得的結果非常準確,物理學家也未能發現甚麼隱藏變數。最重要的是,到底應該如何做實驗去判斷誰是誰非?畢竟那是說粒子在未測量之前已經有確定「顏色」,可是不測量又如何得悉?

物理學家貝爾(John Stewart Bell)發表論文,回應EPR悖論。這篇論文為後世提供了驗證是否存在隱藏變數的方法,也就是說,驗證粒子的「顏色」到底是預先設定好,抑或如量子力學所理解般要到測量時才可確定。

而物理學家的多個實驗結果顯示,量子力學地位仍未受EPR悖論挑戰,站不住腳的反而是「近距唯實論」。雖然不同實驗設計被指各有漏洞,但去年台夫特理工大學(TU Delft)的團隊所設計的實驗,能同時堵塞不同漏洞,被視為對愛因斯坦最有力的反駁。

根據量子力學的預測,量子糾纏並不受距離限制。「墨子號」將會進行相隔1200公里的貝爾測試,乃目前距離最遠的一次嘗試。到時候,物理學家便可以知道量子糾纏的現象,在如此長距離下是否存在。

(未完待續。)

按︰感謝天體物理學家及本網作者余海峯閱讀本文初稿並提供意見,有興趣進一步了解量子力學的讀者,可以閱讀他的文章〈你也能懂量子力學〉

相關文章︰

資料來源︰


猜你喜歡


挖掘雲端開放架構優勢!Amazon EKS高可用性叢集快速部署容器

挖掘雲端開放架構優勢!Amazon EKS高可用性叢集快速部署容器

我們想讓你知道的是

企業如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署,減輕人力負擔,提升專案服務運作效率?

所謂現代化智慧 IT,所有工程師最希望的境界,莫過於只要輕鬆點幾下設定,系統就會自動跑起來,管理者再也不用隨時待命在機台旁邊,從此工作悠哉又快樂!儘管這樣情境還沒到來,但隨著敏捷式開發的流行,除了 DevOps 人員,有越來越多開發者將 CI/CD 概念融入到工作流程當中,例如從 build code、執行 unit test、到部署應用程式。

透過 AWS 增加雲端技能 在組織發揮影響力

上述種種反覆步驟自動化執行,也就能提昇服務品質、主動通知開發人員以減輕人力負擔,讓專案服務能持續運作。

其中,GitLab 是執行 CI/CD 常用的工具之一,也是開發者使用程式碼儲存庫的地方。為了讓 GitLab Runner 在雲端快速實踐 CI/CD,《AWS 開發者系列》透過影片分享,如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署。

以下節錄工作坊影音內容,幫助開發者快速理解如何運用 Amazon EKS 的高可用性且安全的叢集,將修補、部署節點、更新等關鍵任務,全部做到自動化設定。同時影片也會示範 Amazon EKS 搭配 GitLab 如何展開自動部署,幫助工程團隊實踐 CI/CD 價值。

Amazon EKS 對容器管理輕鬆簡單、維運省時省力

容器化服務越來越興盛,當容器(Container)越來越多,在複雜的微服務(Microservice)系統環境之下,運維團隊的管理成本可能相對會增加不少,為了有效調度容器部署, 導入Kubernetes 無疑是近年企業熱門的話題之一。

建構 Kubernetes Cluster 流主要可區分兩大塊,一是安排容器調度的Control Plane、另一則是容器運行時需要用到的 Worker Node。

Control Plane 裡面涵蓋有儲存狀態的 ETCD、CoController manager 、Scheduler 的調度管理、甚至是操作時進行互動的 APIServer,若是自己創建 的 Kubernetes Cluster ,需要自己安裝這些元件,後續仍需要對 Control Plane 進行相關管理、維護、升級工作。為了減少上述 Components 的繁複維護,在透過 AWS EKS 代管的 Kubernete Control Plane 部可以獲得以下三大好處。

Amazon EKS 一鍵式部署,展現三大優勢

第一,Amazon EKS代管的 Control Plane實踐了跨AZ的高可用部署,使用者不需要擔心單一節點故障的風險。

第二,Amazon EKS 支持至少四個 Kubernetes版本,持續跟進每季 CNCF 的發佈,同時 EKS 也完全符合上游 CNCF 規範。

第三,部署 Amazon EKS 之後,可直接使用 AWS 平台上現成的服務工具,在安全性管理、網路設定方面,可以做到無縫整合。

最後 AWS 台灣解決方案架構師也提到,若想在容器環境進行 CI/CD 及應用程式的管理,可以進一步透過 IaC 整合部署 Amazon EKS 叢集,透過使用 Console、把 EKS 變成 Cloudformation 的模板、使用 AWS 所開發出來的 eksctl.io、或指令是採用 AWS CDK 可以讓開發者用自身熟悉的語言,在 AWS 平台整合 CI/CD 工具進行維運及部署 EKS。

打造第一個在 AWS 上的應用程式

了解 Amazon EKS 整合 GitLab ,獲得三面向價值

對開發者而言,想把 Amazon EKS 整合到 CI/CD 工具之一的 GitLab 平台上,可以看到那些實際的優勢?

在 DevOps 開發者示範工作坊當中,GitLab 資深解決方案架構師指出,GitLab 使用到 Kubernetes 技術,主要有三種搭配方法,包含 GitLab Server、GitLab Runner、以及創建 Deployment Environment。

本次示範教學會主要聚焦在 GitLab Runner 如何採取 Auto-scaled 方式進行 Build、Test、Package Apps;以及在 Deployment Environment 運用 Kubernetes 技術,做到 Auto Deploy、Review App。

正因為 Amazon EKS 能夠在 DevOps 過程提供所需要的彈性計算資源,幫助開發者在 GitLab 平台上面獲得以下三個層次的優勢:

  • 在 GitLab 內建的部署工作流程當中,自動生成整套 CI/CD 最佳實踐腳本。
  • Review App 過程,從 Merge Request 中可直接訪問應用程式 /App 的 UI 介面,並且根據 Git branch 名稱、專案名稱,自動生成 Review App 的 URL,以及在 Merge 前的最後防線進行 Approval 檢查。
  • 加速 CI/CD 流水線,GitLab Runner 運行時候還可藉由 Amazon EKS Cluster 進行 Auto-scaled 的支援。

Amazon EKS 整合 GitLab ,需要兩大流程

影片最後,GitLab 資深解決方案架構師示範如何把 Amazon EKS 整合至 GitLab 執行 Auto Deploy,主要可分為兩大區塊流程,第一部分聚焦在 Amazon EKS cluster 的設置,第二部分則執行 Auto Deploy 設置。

第一塊可拆分為四個階段,首先教學怎麼創建 EC2 節點的 EKS cluster,第二階段示範把 EKS Cluster 連接到開發者的 GitLab Instance、Group 或 Project,下一步則使用 Cluster Management Project Template 創建一個 Cluster Management Project,以及最後一階段透過 Cluster Management Project 自帶的 Helm Chart,安裝在 Cluster 所需要的內建 App。

第二塊執行 Auto Deploy 設置,針對需要部署的 App 創建一個 GitLab Project,接著再把 gitlab-ci.yml 添加到 Project,並從 Web IDE 選擇及導入 Auto Deploy 的 CI 模版,讓 GitLab 自動生成最佳實踐的整套流水線。

幫助開發者更了解 Amazon EKS 整合 GitLab 的 QA 系列

Q:使用 Amazon EKS 之後,如何更有效率或優化資源去配置 Worker Node 的機器數量,以及如何有效空管開發維運的成本?

A:Kubernetes 除了本身有 HPA(Horizontal Pod Autoscaling)可根據使用程度自動調整資源流量,另外也能延伸使用 AWS Auto Scaling 方案,針對可擴展資源去設定自動擴展管理。另外在成本管控,雖然 Amazon EKS 會收取額外管理費用,但可透過 AWS 平台的 Calculato r計算每個 EKS 的價格,你會發現自動化部署及管理的費用,相對工程師人力的成本更加便宜。

Q:越來越多客戶考慮把現有 Application 變成容器部署,大多是爲了加快部署的效率,那麼變成容器模式之後,對 CI/CD 的工作流程有什麽影響嗎?

A:運用容器技術最直接的效果,可以讓應用程式的環境更一致化,例如 testing 環節、stage production,讓容器避開一些差異問題。至於 CD 部分要 delivery 一些 usage 不太一樣的時候,容器會幫忙做配置,所以 CI/CD 對容器的效益是相輔相成的。

Q: 客戶在開發流程漸漸會把 Infrastructure 變成代碼或文檔,是不是可以把程式碼跟現有的應用程式的 CI/CD 流水線整合在一起,達到一套完整的 CI/CD 部署流程?

A:觀察目前市場作法,主要分成兩個階段去做整體部署。如果規模比較小的團隊,會把 Infrastructure 代碼跟 App 代碼分開,在管理上會比較靈活;如果企業規模比較大,會有另外一個 Infrastructure 團隊來控制部署事情,這種情况之下,APP 的項目會生成一個 APP package,主要做到 delivery 這個階段爲止。而 Infrastructure 的項目會指定把需要版本的文檔,部署到他們的 Kubernetes Cluster。

填寫表單 找到適合的快速上雲服務與工具!


猜你喜歡