Là sửa lỗi cần thiết?


20

Tại sao bạn cần sửa lỗi? Sự hiểu biết của tôi là sửa lỗi sẽ loại bỏ lỗi khỏi tiếng ồn, nhưng tiếng ồn nên tự khắc phục. Để làm rõ những gì tôi đang hỏi, tại sao bạn không thể, thay vì liên quan đến sửa lỗi, chỉ cần chạy các thao tác, nói, hàng trăm lần và chọn câu trả lời trung bình / phổ biến nhất?

Câu trả lời:


18

Điều đó không có quy mô tốt. Sau khi tính toán dài vừa phải, về cơ bản bạn còn lại với trạng thái hỗn hợp tối đa hoặc bất kỳ điểm cố định nào mà tiếng ồn của bạn có. Để mở rộng quy mô tính toán dài tùy ý, bạn cần sửa lỗi trước khi chúng trở nên quá lớn.

Đây là một số tính toán ngắn cho trực giác được đưa ra ở trên. Hãy xem xét mô hình nhiễu trắng đơn giản (khử cực khử nhiễu), trong đó là trạng thái lý tưởng ( áp dụng ký hiệu chuẩn ). Nếu bạn tiếp nhau quá trình ồn ào như vậy, tham số tiếng ồn mới là , làm tăng theo cấp số nhân trong số cổng (hoặc các nguồn lỗi khác). Nếu bạn lặp lại thử nghiệm -times và giả sử rằng lỗi tiêu chuẩn quy mô là bạn sẽ thấy rằng số lần chạyρ

ρ(ε)=(1ε)ρ+εItrI,
ρε ' = 1 - ( 1 - ε ) n m 1nε=1(1ε)nm m1mm sẽ theo cấp số nhân theo chiều dài tính toán của bạn!

11

Nếu tỷ lệ lỗi đủ thấp, bạn có thể chạy một phép tính hàng trăm lần và đưa ra câu trả lời phổ biến nhất. Chẳng hạn, điều này sẽ hoạt động nếu tỷ lệ lỗi đủ thấp để số lỗi dự kiến ​​cho mỗi tính toán là rất nhỏ - điều đó có nghĩa là chiến lược này hoạt động tốt như thế nào tùy thuộc vào việc tính toán bạn muốn làm trong bao lâu và phức tạp.

Khi tỷ lệ lỗi hoặc độ dài tính toán của bạn trở nên đủ cao, bạn không còn có thể tin tưởng rằng kết quả rất có thể là không có lỗi: tại một thời điểm nhất định, nhiều khả năng bạn có một, hoặc hai, hoặc nhiều lỗi hơn là bạn không có. Trong trường hợp này, không có gì ngăn cản phần lớn các trường hợp đưa ra câu trả lời sai cho bạn. Sau đó thì sao?

Những vấn đề này không đặc biệt đối với tính toán lượng tử: chúng cũng áp dụng cho tính toán cổ điển - điều xảy ra là hầu như tất cả công nghệ của chúng ta đều ở trạng thái trưởng thành đủ tiến bộ mà những vấn đề này không liên quan đến chúng ta trong thực tế; rằng có thể có nhiều khả năng máy tính của bạn bị tấn công bởi một phép tính giữa thiên thạch (hoặc nó hết pin hoặc bạn quyết định tắt nó) so với lỗi phần cứng. Điều (tạm thời) đặc biệt về tính toán lượng tử là công nghệ chưa đủ trưởng thành để chúng ta có thể thoải mái về khả năng xảy ra lỗi.

Trong thời đại khi tính toán cổ điển đã ở giai đoạn mà việc sửa lỗi vừa thiết thực vừa cần thiết, chúng tôi đã có thể sử dụng một số kỹ thuật toán học nhất định - sửa lỗi - giúp có thể triệt tiêu tỷ lệ lỗi hiệu quả và về nguyên tắc để làm cho nó ở mức thấp như chúng tôi muốn. Các kỹ thuật tương tự đáng ngạc nhiên có thể được sử dụng để sửa lỗi lượng tử - với một chút mở rộng, để phù hợp với sự khác biệt giữa thông tin lượng tử và thông tin cổ điển. Lúc đầu, trước giữa những năm 1990, người ta đã nghĩ rằng việc sửa lỗi lượng tử là không thể vì sự liên tục của không gian của các trạng thái lượng tử. Nhưng hóa ra, bằng cách áp dụng các kỹ thuật sửa lỗi cổ điển theo đúng cách cho các cách khác nhau mà một qubit có thể được đo (thường được mô tả là "bit" và "pha"), về nguyên tắc bạn cũng có thể triệt tiêu nhiều loại nhiễu trên các hệ lượng tử. Các kỹ thuật này cũng không đặc biệt đối với các qubit, cũng có thể sử dụng cùng một ý tưởng cho các hệ lượng tử ở bất kỳ chiều hữu hạn nào (mặc dù đối với các mô hình như tính toán tính toán, sau đó nó có thể thực hiện theo cách thực hiện tính toán mà bạn muốn thực hiện).

Vào thời điểm tôi đang viết bài này, các qubit riêng lẻ rất khó xây dựng và thành soái ca đến nỗi mọi người đang hy vọng thoát khỏi việc tính toán bằng chứng nguyên tắc mà không có bất kỳ sửa lỗi nào. Điều đó tốt, nhưng nó sẽ giới hạn thời gian tính toán của họ có thể kéo dài bao lâu cho đến khi số lượng lỗi tích lũy đủ lớn để việc tính toán ngừng có ý nghĩa. Có hai giải pháp: để cải thiện tiếng ồn hoặc áp dụng sửa lỗi. Cả hai đều là những ý tưởng tốt, nhưng có thể việc sửa lỗi dễ thực hiện trong trung và dài hạn hơn là triệt tiêu các nguồn gây nhiễu.


Là một sửa chữa nhanh chóng, phần cứng hiện đại phải chịu tỷ lệ lỗi không đáng kể và phương pháp sửa lỗi được sử dụng. Điều đó nói rằng, tất nhiên quan điểm của bạn về các vấn đề trở nên tồi tệ hơn nhiều trên các máy tính lượng tử hiện tại.
Nat

@Nat: thú vị. Tôi mơ hồ nhận ra rằng điều này hiện có thể là trường hợp của GPU và (trong bối cảnh không liên quan đến tính toán hoạt động) mảng RAID cũng là một ví dụ rõ ràng. Nhưng bạn có thể mô tả các nền tảng phần cứng khác mà tính toán cổ điển phải dựa vào sửa lỗi trong quá trình tính toán không?
Niel de Beaudrap

Có vẻ như lỗi thường xuyên nhất trong bối cảnh mạng, tiếp theo là lưu trữ đĩa, tiếp theo là RAM. Các giao thức và đĩa mạng thường xuyên thực hiện các thủ thuật sửa lỗi. RAM là một túi hỗn hợp; RAM máy chủ / máy trạm có xu hướng sử dụng mã sửa lỗi (ECC), mặc dù RAM của người tiêu dùng thường không có. Trong CPU, tôi tưởng tượng rằng họ có nhiều chiến thuật cụ thể hơn, nhưng đó có thể là bí mật của nhà sản xuất. Tỷ lệ lỗi trong CPU và GPU trở nên có liên quan ở mức có thể quan sát được trong một số trường hợp, ví dụ như trong các quyết định ép xung và khóa lõi của nhà sản xuất.
Nat

Thực sự hơi tò mò về việc sửa lỗi loại CPU hiện tại .. Ý tôi là, bộ đệm có vẻ dễ gặp vấn đề tương tự như RAM thông thường (trừ khi bằng cách nào đó được đệm với nhiều năng lượng hơn hoặc một cái gì đó?), Có lẽ không thể chấp nhận được trong máy chủ / bối cảnh máy trạm. Nhưng ở cấp độ đăng ký? Đó là một cái gì đó gọn gàng để đọc về; đã không thấy bất cứ điều gì ngay lập tức trên Google, mặc dù tôi cho rằng thông tin đó có thể là bí mật thương mại.
Nat

8

Bây giờ, thêm vào câu trả lời của M. Stern :

Lý do chính là tại sao cần sửa lỗi cho máy tính lượng tử, bởi vì các qubit có trạng thái liên tục (hiện tại tôi chỉ xem xét máy tính lượng tử dựa trên qubit vì đơn giản).

Trong máy tính lượng tử, không giống như máy tính cổ điển, mỗi bit không tồn tại ở hai trạng thái có thể. Chẳng hạn, nguồn lỗi có khả năng bị xoay vòng quá mức: có thể được coi là nhưng thực sự trở thành . Trạng thái thực tế gần với trạng thái đúng nhưng vẫn sai. Nếu chúng ta không làm gì đó với điều này, các lỗi nhỏ sẽ tích tụ theo thời gian và cuối cùng trở thành một lỗi lớn.alpha | 0 + β e i φ | 1 alpha | 0 + β e i ( φ + δ ) | 1 α|0+β|1α|0+βeiϕ|1α|0+βei(ϕ+δ)|1

Hơn nữa, các trạng thái lượng tử rất tinh vi và bất kỳ tương tác nào với môi trường đều có thể gây ra sự sụp đổ và sụp đổ của một trạng thái như thành với xác suất hoặc với xác suất .| 0 | alpha | 2 | 1 | β | 2α|0+β|1|0|α|2|1|β|2

Trong một máy tính cổ điển nếu nói giá trị của một bit đang được sao chép n lần như sau:

1 11111 ... n lần

000000...n times
111111...n times

000100010000000000000s010

|ψ=α|0+β|1(α|0+β|1)(αeiϵ|0+βeiϵ|1)(αeiϵ2|0+βeiϵ2|1)...0 10 1000! ", để sửa bất kỳ lỗi nào xảy ra trong quá trình vận hành. Đó là vì tất cả trạng thái của qubit khác nhau có thể khác nhau, sau hoạt động được gọi là" sao chép ". Số lượng các lỗi có thể như vậy sẽ tiếp tục tăng nhanh chóng khi ngày càng có nhiều hoạt động được thực hiện trên một hệ thống các qubit. M. Stern thực sự đã sử dụng thuật ngữ đúng trong câu trả lời của họ cho câu hỏi của bạn, tức là "điều đó không có quy mô tốt ".1010

Vì vậy, bạn cần một loạt các kỹ thuật sửa lỗi khác nhau để xử lý các lỗi xảy ra trong quá trình vận hành máy tính lượng tử, có thể xử lý không chỉ các lỗi lật bit mà còn cả các lỗi dịch pha. Ngoài ra, nó phải có khả năng chống lại sự trang trí không chủ ý. Một điều cần lưu ý là hầu hết các cổng lượng tử sẽ không "hoàn hảo", mặc dù với số lượng "cổng lượng tử phổ quát", bạn có thể tự ý tiến gần đến việc xây dựng bất kỳ cổng lượng tử nào thực hiện (theo lý thuyết) một phép biến đổi đơn nhất.

Niel de Beaudrap đề cập rằng có những cách thông minh để áp dụng các kỹ thuật sửa lỗi cổ điển theo cách mà chúng có thể sửa nhiều lỗi xảy ra trong các hoạt động lượng tử, điều này thực sự chính xác và chính xác là những gì mà các mã sửa lỗi lượng tử ngày nay làm. Tôi muốn thêm những điều sau từ Wikipedia , vì nó có thể cho một số sự rõ ràng về cách mã sửa lỗi lượng tử xử lý vấn đề được mô tả ở trên:

Các mã sửa lỗi cổ điển sử dụng phép đo hội chứng để chẩn đoán lỗi nào làm hỏng trạng thái được mã hóa. Sau đó, chúng tôi đảo ngược một lỗi bằng cách áp dụng một hoạt động khắc phục dựa trên hội chứng. Sửa lỗi lượng tử cũng sử dụng các phép đo hội chứng. Chúng tôi thực hiện phép đo đa qubit không làm xáo trộn thông tin lượng tử ở trạng thái được mã hóa nhưng lấy thông tin về lỗi. Một phép đo hội chứng có thể xác định xem một qubit đã bị hỏng, và nếu vậy, cái nào. Hơn nữa, kết quả của hoạt động này (hội chứng) cho chúng ta biết không chỉ qubit vật lý nào bị ảnh hưởng, mà còn, trong đó có một số cách có thể bị ảnh hưởng. Cái sau là phản trực giác ngay từ cái nhìn đầu tiên: Vì tiếng ồn là tùy ý, làm thế nào hiệu ứng của tiếng ồn có thể là một trong số ít khả năng khác biệt? Trong hầu hết các mã, hiệu ứng là lật một chút hoặc lật (của pha) hoặc cả hai (tương ứng với ma trận Pauli X, Z và Y). Lý do là việc đo lường hội chứng có tác dụng phóng chiếu của phép đo lượng tử. Vì vậy, ngay cả khi lỗi do nhiễu là tùy ý, nó có thể được biểu thị dưới dạng chồng chập các hoạt động cơ sở Thay đổi cơ sở lỗi (ở đây được đưa ra bởi ma trận Pauli và danh tính). Phép đo hội chứng "buộc" qubit phải "quyết định" cho một "lỗi Pauli" cụ thể nào đó "đã xảy ra", và hội chứng cho chúng ta biết điều đó, để chúng ta có thể để cùng một nhà điều hành Pauli hành động lại trên qubit bị hỏng để hoàn nguyên ảnh hưởng của lỗi.

Phép đo hội chứng cho chúng ta biết càng nhiều càng tốt về lỗi đã xảy ra, nhưng không có gì về giá trị được lưu trữ trong qubit logic, nếu không, phép đo sẽ phá hủy bất kỳ sự chồng chất lượng tử nào của qubit logic này với các qubit khác trong lượng tử máy vi tính.


Lưu ý : Tôi chưa đưa ra bất kỳ ví dụ nào về các kỹ thuật sửa lỗi lượng tử thực tế. Có rất nhiều sách giáo khoa tốt ngoài đó thảo luận về chủ đề này. Tuy nhiên, tôi hy vọng câu trả lời này sẽ cung cấp cho độc giả một ý tưởng cơ bản về lý do tại sao chúng ta cần sửa lỗi mã trong tính toán lượng tử.


Đề nghị đọc thêm:

Bài giảng video được đề xuất:

Khóa học sự cố nhỏ: Sửa lỗi lượng tử của Ben Reichardt, Đại học Nam California


3
Tôi không chắc thực tế là có sự liên tục của các quốc gia đóng vai trò nào. Tính toán cổ điển với các bit cũng sẽ có cùng một vấn đề nếu công nghệ của chúng ta kém trưởng thành hơn và thực sự nó đã bị ảnh hưởng bởi tiếng ồn ở nhiều thời điểm khác nhau trong quá trình phát triển. Trong cả trường hợp cổ điển và lượng tử, tiếng ồn không thuận tiện trung bình trong các trường hợp thông thường
Niel de Beaudrap

51000.50505

Tất nhiên bạn không sai khi bạn nói rằng ngay cả tính toán cổ điển cũng gặp phải vấn đề về tiếng ồn. Có một lý thuyết cũng được thiết lập về các mã sửa lỗi cổ điển! Tuy nhiên, tình hình còn thảm khốc hơn nhiều trong trường hợp tính toán lượng tử do khả năng vô số trạng thái tồn tại của một qubit duy nhất.
Sanchaya Dutta

1
Các kỹ thuật được sử dụng để sửa lỗi lượng tử không liên quan đến thực tế là không gian trạng thái là vô hạn theo bất kỳ cách nào. Các đối số mà bạn đang đưa ra dường như đang vẽ một sự tương đồng giữa điện toán lượng tử và điện toán tương tự --- trong khi có một sự tương đồng, nó sẽ ám chỉ rằng việc sửa lỗi lượng tử sẽ là không thể nếu đó là một sự tương tự âm thanh. Ngược lại, không gian trạng thái của nhiều qubit cũng giống như phân phối xác suất trên chuỗi bit, trong đó cũng có một chuỗi liên tục; và chỉ thực hiện sửa lỗi trên các chuỗi bit xác định đủ để triệt tiêu lỗi.
Niel de Beaudrap

1
@glS Tôi đã xóa câu đầu tiên. Bạn đúng. Tôi đã diễn giải tính toán theo một cách không liên quan.
Sanchaya Dutta

2

Tại sao bạn cần sửa lỗi? Sự hiểu biết của tôi là sửa lỗi sẽ loại bỏ lỗi khỏi tiếng ồn, nhưng tiếng ồn nên tự khắc phục.

Nếu bạn xây dựng một ngôi nhà hoặc một con đường và tiếng ồn là một phương sai, một sự khác biệt, liên quan đến độ thẳng, hướng, nó không chỉ / đơn giản: "Nó trông như thế nào", nhưng "Nó sẽ như thế nào?" - sự chồng chất của cả hiệu quả và tính chính xác.

Nếu hai người tính chu vi của một quả bóng golf có đường kính thì mỗi người sẽ nhận được một câu trả lời tương tự nhau, tùy thuộc vào tính chính xác của các tính toán của họ; nếu mỗi cái được sử dụng một vài vị trí thập phân thì nó sẽ là 'đủ tốt'.

Nếu hai người được cung cấp thiết bị và nguyên liệu giống hệt nhau, và được cung cấp cùng một công thức cho một chiếc bánh, chúng ta có nên mong đợi kết quả giống hệt nhau không?

Để làm rõ những gì tôi đang hỏi, tại sao bạn không thể, thay vì liên quan đến sửa lỗi, chỉ cần chạy các thao tác, nói, hàng trăm lần và chọn câu trả lời trung bình / phổ biến nhất?

Bạn đang làm hỏng cân, gõ ngón tay lên bàn cân.

Nếu bạn đang ở một buổi hòa nhạc lớn và cố gắng giao tiếp với người bên cạnh bạn, họ có hiểu bạn lần đầu tiên, mọi lúc không?

Nếu bạn kể một câu chuyện hoặc truyền bá một tin đồn, (và một số người truyền đạt nguyên văn, một số người thêm vào guồng quay của họ và những người khác quên đi các phần), khi nó quay trở lại với bạn, nó sẽ tự bình thường và trở nên cơ bản (nhưng không giống hệt) điều bạn nói? - không thể

Nó như nhăn lên một mảnh giấy và sau đó làm phẳng nó ra.

Tất cả những sự tương tự đó nhằm mục đích cung cấp sự đơn giản về tính chính xác, bạn có thể đọc lại chúng một vài lần, tính trung bình và có câu trả lời chính xác hoặc không. ;)


Một lời giải thích kỹ thuật hơn về lý do tại sao việc sửa lỗi lượng tử là khó khăn nhưng không cần thiết phải giải thích trên trang web của Wikipedia: " Sửa lỗi lượng tử ":

"Sửa lỗi lượng tử (QEC) được sử dụng trong điện toán lượng tử để bảo vệ thông tin lượng tử khỏi các lỗi do sự trang trínhiễu lượng tử khác . Sửa lỗi lượng tử là điều cần thiết nếu người ta đạt được tính toán lượng tử chịu lỗi không chỉ có thể xử lý nhiễu. thông tin lượng tử, mà còn với các cổng lượng tử bị lỗi, chuẩn bị lượng tử bị lỗi và các phép đo bị lỗi. ".

" Sửa lỗi cổ điển sử dụng dự phòng ." ...

"Không thể sao chép thông tin lượng tử do định lý không nhân bản . Định lý này dường như là một trở ngại trong việc hình thành một lý thuyết về sửa lỗi lượng tử. Nhưng có thể truyền bá thông tin của một qubit lên trạng thái vướng víu của một số ( vật lý) qubit. Peter Shor đầu tiên khám phá ra phương pháp này xây dựng một mã lỗi lượng tử sửa chữa bằng cách lưu trữ các thông tin của một qubit vào một trạng thái rất vướng trong chín qubit. lỗi một lượng tử mã sửa bảo vệ thông tin lượng tử chống lại các lỗi của một hình thức hạn chế. ".


2

tiếng ồn nên trung bình ra.

Tiếng ồn không hoàn toàn trung bình chính nó ra. Đó là Ngụy biện của con bạc. Mặc dù tiếng ồn có xu hướng uốn khúc qua lại, nó vẫn tích lũy theo thời gian.

N/2O(N)O(N)

Q2Q2QO(N)

chạy các hoạt động, nói, một trăm lần, và chọn câu trả lời trung bình / phổ biến nhất?

Khi các tính toán trở nên lớn hơn và dài hơn, cơ hội không thấy tiếng ồn hoặc tiếng ồn triệt tiêu hoàn toàn nhanh chóng trở thành gần 0% đến mức bạn không thể mong đợi nhìn thấy câu trả lời chính xác ngay cả khi bạn lặp lại tính toán hàng nghìn tỷ lần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.