Nhanh chóng hơn bao giờ hết, thế giới đang thay đổi do sự thay đổi kỹ thuật số.
Với sự ra đời sắp tới của một làn sóng công nghệ hoàn toàn mới khác có khả năng thay đổi đáng kể các mô hình hiện tại với tốc độ và sức mạnh đáng kinh ngạc: điện toán lượng tử, việc hiểu được những ý tưởng cơ bản của kỷ nguyên kỹ thuật số sẽ càng trở nên quan trọng hơn.
Một kỹ thuật đột phá được gọi là điện toán lượng tử sử dụng vật lý lượng tử để giải quyết các vấn đề nằm ngoài phạm vi của máy tính thông thường.
Các nguyên tắc lý thuyết lượng tử cho thấy vật chất và năng lượng hoạt động như thế nào ở quy mô nguyên tử và hạ nguyên tử, và Qiskit của IBM là một bộ phát triển phần mềm lượng tử mã nguồn mở hỗ trợ việc tạo ra các hệ thống tính toán lượng tử.
Bài viết này tìm cách giải thích điều này và cung cấp cho bạn cái nhìn tổng quan về điện toán lượng tử.
Chúng tôi sẽ giải thích cho độc giả của mình với sự hỗ trợ của máy tính lượng tử mã nguồn mở SDK, I E. Qiskit và để họ khám phá bằng cách sử dụng Máy tính xách tay Jupyter được tổ chức tại Phòng thí nghiệm Lượng tử của IBM.
Máy tính lượng tử là gì?
Tính toán lượng tử là một nhánh của khoa học máy tính tập trung vào phát triển công nghệ máy tính bằng cách sử dụng các ý tưởng từ lý thuyết lượng tử.
Nó tận dụng khả năng đặc biệt của các hạt hạ nguyên tử để tồn tại đồng thời ở nhiều trạng thái, chẳng hạn như 0 và 1.
Chúng có thể xử lý nhiều dữ liệu hơn các máy tính thông thường.
Trong các quy trình tính toán lượng tử, một qubit được tạo ra bằng cách sử dụng trạng thái lượng tử của một đối tượng. Các phần thông tin thiết yếu trong tính toán lượng tử là qubit.
Chúng thực hiện chức năng tương tự như các bit trong tính toán thông thường trong điện toán lượng tử, nhưng chúng hoạt động hoàn toàn khác. Điện toán lượng tử là một lĩnh vực nổi lên vào những năm 1980.
Sau đó, người ta phát hiện ra rằng các thuật toán lượng tử có hiệu quả hơn trong việc thực hiện một số tác vụ máy tính so với các thuật toán cổ điển của chúng.
Chồng chất và vướng víu, hai khái niệm từ vật lý lượng tử, là nền tảng mà các siêu máy tính này dựa trên đó.
So với các máy tính thông thường, máy tính lượng tử hiện có thể thực hiện các công việc có quy mô nhanh hơn trong khi tiêu thụ ít năng lượng hơn rất nhiều.
Chúng ta phải tiến hành hoạt động của máy tính lượng tử để có thể hiểu được nó một cách đầy đủ. Chúng ta hãy bắt đầu ngay bây giờ.
Máy tính lượng tử thực sự hoạt động như thế nào?
So với các máy tính truyền thống mà chúng ta quen thuộc, máy tính lượng tử tiếp cận việc giải quyết vấn đề theo cách khác. Đối với một số tác vụ, máy tính lượng tử thích hợp hơn máy tính truyền thống theo một số cách.
Khả năng tồn tại của chúng ở nhiều trạng thái cùng một lúc được cho là nguyên nhân. Mặt khác, các máy tính thông thường chỉ có thể ở một trạng thái duy nhất cùng một lúc.
Có ba khái niệm chính bạn phải hiểu để hiểu cách máy tính lượng tử hoạt động:
- Chồng chất.
- Sự vướng víu.
- Sự giao thoa.
Chồng chất
Bit là thành phần cơ bản của máy tính truyền thống. Bit lượng tử, hay Qubit, là đơn vị cơ bản của máy tính lượng tử.
Về cơ bản, các bit lượng tử hoạt động khác nhau. Bit nhị phân, đôi khi được gọi là bit truyền thống, là một công tắc có thể là 0 hoặc 1.
Chúng tôi nhận lại trạng thái hiện tại của bit khi chúng tôi đo nó. Qubits là một ngoại lệ cho điều này. Qubit có thể được so sánh với các mũi tên chỉ trong ba chiều.
Chúng ở điều kiện 0 nếu chúng hướng lên trên. Chúng ở trạng thái 1 nếu chúng hướng xuống dưới. Điều này cũng đúng với bit cổ điển.
Tuy nhiên, chúng cũng có thể chọn ở trạng thái chồng chất.
Một mũi tên có điều kiện là nó chỉ theo bất kỳ hướng nào khác. Sự chồng chất của 0 và 1 dẫn đến trạng thái này. Một Qubit sẽ vẫn tạo ra kết quả là 1 hoặc 0 khi nó được đo.
Tuy nhiên, hướng của mũi tên xác định một xác suất có liên quan.
Bạn có nhiều khả năng nhận được số 1 nếu mũi tên chủ yếu hướng xuống dưới và số 0 nếu mũi tên chủ yếu hướng lên trên.
Bạn sẽ có 50% cơ hội chiến thắng cho mỗi mũi tên nếu mũi tên nằm ở giữa. Tóm lại, đó là sự chồng chất.
Sự lộn xộn
Các bit trong một máy tính truyền thống là độc lập với nhau. Trạng thái của một bit không liên quan đến trạng thái của bit kia.
Các qubit trong máy tính lượng tử có thể vướng vào nhau. Điều này ngụ ý rằng chúng hợp nhất thành một trạng thái lượng tử lớn duy nhất.
Để minh họa, hãy xem xét hai qubit ở các trạng thái chồng chất khác nhau nhưng chưa vướng vào nhau. Tại thời điểm này, xác suất của chúng không phụ thuộc vào nhau.
Khi chúng ta vướng vào chúng, chúng ta phải loại bỏ các xác suất độc lập đó và xác định xác suất của tất cả các trạng thái thay thế mà chúng ta có thể thoát ra, cụ thể là 00, 01, 10 và 11.
Phân bố xác suất của toàn bộ hệ thống bị thay đổi nếu hướng của mũi tên trên một qubit bị thay đổi vì các qubit bị vướng vào nhau.
Tính độc lập của các qubit với nhau đã bị mất. Mỗi người trong số họ là một thành phần của cùng một trạng thái khá lớn. Cho dù bạn có bao nhiêu qubit, điều này vẫn xảy ra.
Có thể có sự kết hợp 2n trạng thái đối với một máy tính lượng tử có n qubit.
Ví dụ, bạn có một phân phối xác suất trên hai trạng thái cho một qubit. Bạn có một phân bố xác suất qua bốn trạng thái cho hai qubit, v.v. Sự khác biệt chính giữa máy tính cổ điển và máy tính lượng tử là điều này.
Bạn có thể đặt các máy tính cổ điển trong bất kỳ điều kiện nào bạn chọn, nhưng mỗi lần chỉ nên đặt một máy tính. Tất cả các trạng thái đó có thể tồn tại đồng thời trên máy tính lượng tử như một chồng chất.
Làm thế nào máy tính có thể hưởng lợi khi ở tất cả các trạng thái đó cùng một lúc? Phần tử giao thoa cuối cùng đi vào tại điểm này.
Can thiệp
Một hàm sóng lượng tử có thể được sử dụng để mô tả trạng thái của một qubit.
Mô tả toán học cơ bản của mọi thứ trong vật lý lượng tử được cung cấp bởi các hàm sóng.
Khi nhiều qubit vướng vào nhau, các hàm sóng riêng lẻ của chúng được kết hợp với nhau để tạo thành một hàm sóng duy nhất mô tả trạng thái tổng thể của máy tính lượng tử.
Giao thoa là kết quả của việc cộng các hàm sóng này lại với nhau. Khi các sóng được thêm vào với nhau, chúng có thể tương tác một cách xây dựng và kết hợp để tạo ra một làn sóng lớn hơn, giống như những gợn sóng trên mặt nước.
Chúng cũng có thể tương tác hủy diệt để chống lại nhau. Xác suất đa dạng của các trạng thái khác nhau được xác định bởi hàm sóng tổng thể của máy tính lượng tử.
Chúng ta có thể thay đổi khả năng các trạng thái nhất định sẽ xuất hiện khi chúng ta đo máy tính lượng tử bằng cách thay đổi trạng thái của các qubit khác nhau.
Mặc dù máy tính lượng tử có thể tồn tại ở một số trạng thái chồng chất cùng một lúc, các phép đo chỉ tiết lộ một trong những trạng thái đó.
Do đó, trong khi sử dụng máy tính lượng tử để hoàn thành công việc tính toán, cần có sự can thiệp mang tính xây dựng để nâng cao khả năng nhận được câu trả lời đúng và sự can thiệp phá hoại để giảm khả năng nhận được câu trả lời không chính xác.
Bây giờ, hãy bắt đầu với Qiskit.
Là gì qiskit?
Qiskit là một khung phần mềm do IBM tài trợ được thiết kế để giúp mọi người tham gia vào lĩnh vực máy tính lượng tử dễ dàng hơn.
Bởi vì máy tính lượng tử rất khó để có được, bạn có thể lấy một máy tính thông qua một nhà cung cấp đám mây, chẳng hạn như IBM, bằng cách sử dụng hộp công cụ Qiskit của họ.
Nó có sẵn miễn phí và tất cả mã của nó là mã nguồn mở.
Đây là một sách giáo khoa trực tuyến dạy cho bạn tất cả các nguyên tắc cơ bản của vật lý lượng tử, rất hữu ích cho những người không quen thuộc với chủ đề này. Python được sử dụng để phát triển bộ công cụ Qiskit.
Vì vậy, nếu bạn đã quen với ngôn ngữ lập trình Python, bạn sẽ nhận ra rất nhiều mã.
Khung phần mềm phù hợp cho những ai muốn tìm hiểu về máy tính lượng tử đồng thời tích lũy kinh nghiệm thực tế.
Khía cạnh cơ bản nhất của Qiskit là nó hoạt động theo hai giai đoạn. Một trong những bước là giai đoạn xây dựng, trong đó chúng ta tạo ra một số mạch lượng tử và sử dụng các mạch đó để giải quyết vấn đề.
Sau đó, sau khi hoàn thành giai đoạn xây dựng hoặc đạt được giải pháp, chúng tôi chuyển sang giai đoạn tiếp theo, được gọi là giai đoạn thực thi, trong đó chúng tôi cố gắng chạy bản dựng hoặc giải pháp của mình trong các phần phụ trợ khác nhau (phần phụ trợ vector trạng thái, phần phụ trợ đơn nhất, mở ASM backend), và sau khi chạy xong, chúng tôi xử lý dữ liệu trong bản dựng để có đầu ra mong muốn.
Bắt đầu với Qiskit
Trên máy tính cá nhân của bạn hoặc Máy tính xách tay Jupyter mà IBM lưu trữ, bạn có thể cài đặt cục bộ nó. Viết mã sau để cài đặt cục bộ trên máy tính Windows:
Chúng tôi cần đăng ký tại đây để truy cập mã thông báo API cho phép chúng tôi sử dụng các thiết bị lượng tử của IBM và sau đó chúng tôi có thể bắt đầu làm việc với trang web của công ty. Bạn có thể tưởng tượng làm điều này bằng cách sử dụng một Máy tính xách tay Jupyter được cài đặt Qiskit đang chạy trực tuyến.
Bạn có thể truy cập nó bằng cách chọn Hồ sơ của mình từ menu ở góc trên bên phải của trang, sau đó chọn Thông tin tài khoản. Bạn có thể tìm thấy mã thông báo API của mình trong phần về mã thông báo API ở dạng ***. Nó được sao chép và sau đó nhập vào mã sau:
Khi mã này đã được thực thi, mã thông báo API của bạn sẽ được lưu trên máy tính của bạn, cho phép bạn sử dụng các thiết bị lượng tử của IBM. Nhập thông tin sau để xác định xem bạn có quyền truy cập vào một thiết bị như vậy hay không:
Nếu mã nói trên chạy, bạn sẽ có thể chạy mã không chỉ trên máy tính của mình mà còn bằng cách gửi các mạch lượng tử tích hợp đến các thiết bị lượng tử của IBM và nhận kết quả.
Vì vậy, bằng cách sử dụng thư viện mạch, chúng ta có thể bắt đầu phát triển thuật toán lượng tử đầu tiên của mình. Chúng tôi bắt đầu bằng cách nhập các phụ thuộc thiết yếu từ Qiskit vào dự án của chúng tôi.
Sau đó, chúng tôi xây dựng một thanh ghi lượng tử hai qubit và một thanh ghi quy ước hai bit.
Vì vậy, bây giờ chúng ta đã thiết lập cả một thanh ghi cổ điển và lượng tử. Sử dụng hai thứ đó, chúng ta có thể xây dựng mạch và nếu, bất kỳ lúc nào trong suốt quá trình sửa đổi của mạch, bạn muốn phác thảo mạch lượng tử trông như thế nào, hãy viết đoạn mã sau:
Chúng ta có thể thấy từ hình ảnh rằng mạch bao gồm hai bit lượng tử và hai bit cổ điển.
Vì nó là, mạch này thiếu cổng, làm cho nó không thú vị. Bây giờ chúng ta hãy xây dựng mạch bằng cách sử dụng các cổng lượng tử. Thích cổ điển cổng logic (Cổng AND, OR) là đối với mạch số thông thường, cổng lượng tử là thành phần cơ bản của mạch lượng tử.
Áp dụng cổng Hadamard cho qubit đầu tiên là bước đầu tiên trong việc tạo ra sự vướng víu. Sau đó, bằng cách sử dụng mã sau, chúng tôi sẽ thêm một phép toán x được kiểm soát hai qubit:
Bây giờ hai toán tử này đã được sử dụng để xây dựng mạch lượng tử của chúng ta, đã đến lúc đo các bit lượng tử (qubit), thực hiện các phép đo đó và lưu trữ chúng trong các bit cổ điển. Hãy tạo mã cần thiết để đạt được điều đó:
Sơ đồ dưới đây mô tả cách bố trí mạch của chúng tôi:
Sau đó, mạch phải được chạy trên một trình mô phỏng máy tính truyền thống. Mạch đã được hoàn thành. Và kiểm tra kết quả của việc thực hiện đó.
Thông tin thu được từ việc thực hiện mạch đó được lưu trữ trong biến kết quả. Hãy hiển thị những kết quả này bằng cách sử dụng biểu đồ âm mưu.
Đó là những gì xảy ra khi chúng ta chạy mạch lượng tử của mình. Đối với các số 00 và 11, chúng tôi nhận được xác suất khoảng 50%. Mạch máy tính lượng tử ban đầu của bạn đã được xây dựng. Xin chúc mừng!
Các ứng dụng của Qiskit Quantum Computing
Tài chính Qiskit
Qiskit Finance cung cấp một bộ sưu tập các công cụ và ứng dụng minh họa. Chúng bao gồm các trình dịch Ising để tối ưu hóa danh mục đầu tư, các nhà cung cấp dữ liệu cho dữ liệu thực tế hoặc ngẫu nhiên và các triển khai để định giá các tùy chọn tài chính khác nhau hoặc đánh giá rủi ro tín dụng.
Thiên nhiên Qiskit
Các ứng dụng như gấp protein và cấu trúc điện tử/vibronic tính toán cho cả trạng thái kích thích và cơ bản được hỗ trợ bởi Qiskit Nature.
Nó cung cấp tất cả các phần cần thiết để kết nối các mã cổ điển và tự động chuyển đổi sang các biểu diễn khác nhau mà máy tính lượng tử cần.
Học máy Qiskit
Quantum học máy các phương pháp sử dụng chúng để giải quyết các vấn đề khác nhau, chẳng hạn như hồi quy và phân loại, được cung cấp bởi Qiskit Machine Learning cũng như các hạt nhân lượng tử cơ bản và mạng nơ-ron lượng tử (QNN) làm khối xây dựng.
Nó cũng cho phép kết nối QNN với PyTorch nhằm mục đích kết hợp các phần tử lượng tử vào các phép toán cổ điển.
Tối ưu hóa Qiskit
Qiskit Optimization cung cấp toàn bộ phổ dịch vụ tối ưu hóa, bao gồm mô hình hóa cấp cao của các vấn đề tối ưu hóa, dịch tự động các vấn đề sang các biểu diễn cần thiết khác nhau và tập hợp các phương pháp tối ưu hóa lượng tử đơn giản.
Kết luận
Tóm lại, trong khi siêu máy tính nhanh nhất hiện nay phải mất nhiều năm, máy tính lượng tử có thể nhanh chóng vượt qua các phương pháp mã hóa hiện tại.
Mặc dù thực tế là máy tính lượng tử sẽ có thể phá vỡ nhiều kỹ thuật mã hóa được sử dụng ngày nay, người ta dự đoán rằng chúng sẽ tạo ra các sản phẩm thay thế chống hack.
Tối ưu hóa vấn đề là một thế mạnh của máy tính lượng tử. Để biết thêm chi tiết, vui lòng truy cập Qiskit GitHub.
Bình luận