Tài liệu học tập
Không giống như những nhánh đang nổi trội khác của ngành khoa học máy tính như trí tuệ nhân tạo hay học máy, điện toán lượng tử còn khá non trẻ khi so sánh về mức độ phát triển. Hầu hết các ngôn ngữ lập trình hoặc thư viện lượng tử được tạo ra để mọi người học và thí nghiệm những ý tưởng mới thay vì dùng để phát hành bất kì sản phẩm thương mại nào. Một cách tổng quát thì khía cạnh ứng dụng thực tiễn của ngành này còn yếu; trọng tâm của nó chủ yếu nằm ở việc diễn giải các lý thuyết thông tin lượng tử và… làm mấy thứ vui vui để học. Vì lý do này mà tớ có thể nói chúng ta không thực sự học được điện toán lượng tử nếu ta không làm quen với lý thuyết thông tin lượng tử trước. Sách về mảng thông tin lượng tử và điện toán lượng tử yêu cầu người đọc một ít kiến thức nền tảng về Đại số Tuyến tính (bắt buộc), Xác suất và Thông kê, Cơ học Lượng tử, Lý thuyết Số, Giải tích Phức và Giải tích Hàm (không bắt buộc, tùy thuộc vào chủ đề) và thường được viết không dễ hiểu là mấy cho người mới học. Vì thế trong bài viết này tớ muốn giới thiệu với mọi người tất cả những tài liệu ưa thích kể từ khi tớ bắt đầu học thông tin và điện toán lượng tử.
Bước đi đầu tiên
Ở đây là một danh sách gồm những tài liệu đọc mà tớ nghĩ là tốt và ít nhận xét cá nhân về chúng:
Tóm tắt bài giảng “Introduction to Quantum Computing” của John Watrous: Trên cả tuyệt vời nhé, rất cô đọng và bổ ích, chắc chắc sẽ giúp bạn có nền tảng vững chắc. Chắc chắn phải đọc.
‘Quantum Computer Science: An Introduction’ của David Mermin: Thực sự rất tốt, dùng văn phong khoa học máy tính và rất chú trọng toán học hình thức, một bước chuẩn bị tuyệt vời cho những bài viết nặng khoa học hơn sau này. Highly recommended.
‘Quantum Computing for Computer Science’ của N. Yanofsky and M. Mannucci: Tốt nhưng hơi dài, thường dùng biểu diễn ma trận với rất nhiều ví dụ và các bước làm cụ thể, chắc chắn sẽ hợp cho những ai không muốn bị ngộp bởi đống ký hiệu toán học lúc ban đầu.
‘Quantum Computing since Democritus’ của Scott Aaronson: Cũng khá thú vị tuy nhiên không hẳn là phù hợp để học nghiêm túc, đặc nghịt chữ với lối hành văn tự sự và tập trung cao độ vào lý thuyết, việc trích dẫn cũng làm rất tốt. Khuyến khích đọc trong thời gian rảnh vì tác giả có một vài góc nhìn rất khác biệt
‘An Introduction to Quantum Computing’ của P. Kaye, R. Laflamme và M. Mosca: Bản kết luận và mở rộng tốt nhất khi bạn đã hoàn thành phần cơ bản (cho đến hết thuật toán Grover và Shor), viết tốt và rất súc tích (có thể không phù hợp cho những bạn mới toanh), cực nặng lý thuyết, có lối tiếp cận khá độc đáo với những bài toán lượng tử mà có thể giúp bạn hiểu thấu được vấn đề. Highly recommended. (Góc cá nhân: Em rất cảm ơn hai anh sếp đã tặng em quyển sách quý giá này.)
Kiến thức cao hơn
- ‘Quantum Processes, Systems, and Information’ của B. Schumacher và M. Westmoreland (Lý thuyết Thông tin Lượng tử): Nhìn chung là khá tốt, viết chi tiết nhưng hơi khó đọc vì cả nội dung và cách viết, là một bước đệm cho việc đọc bài báo khoa học. Recommended.
- ‘Quantum Walks and Search Algorithms’ của Renato Portugal (Bước đi Lượng tử): Tuyệt vời, viết tốt và không quá khó hiểu. Rất khuyến khích vì bước đi lượng tử đang dần trở thành một nhánh nhiều tiềm năng.
- ‘Quantum Walks for Computer Scientist’ Salvador Venegas-Andraca: Trung bình, nhiều thông tin nhưng khá khó đọc, có thể dùng để bổ sung cho quyến phía trên.
- Quantum Machine Learning: Tớ cũng chưa đụng tới mảng này nên cũng không thể nói gì về bài báo này mặc dù nó thường xuyên được trích dẫn trong các bài báo cùng lĩnh vực. Điều duy nhất tớ có thể nói rằng nó là nhánh được nghiên cứu nhiều nhất ở thời điểm hiện tại trong lĩnh vực điện toán lượng tử.
Video bài giảng
- Cơ học lượng tử: Thấy các khóa học của MIT OpenCourseWare vừa thú vị, đủ khó nhưng vẫn tiêu hóa được. Bạn có thể chọn một giáo sự nào mà bạn thấy hợp cách dạy để học.
- Khóa Berkeley CS191x trên edX “Quantum Mechanics and Quantum Computation” gồm các video bài giảng của GS Umesh Vazirani: Một khởi đầu đơn giản và tuyệt vời cho những ai thích nghe bài giảng, tuy nhiên không chứa đủ thông tin do đó bạn không nên phụ thuộc hoàn toàn vào nó. Recommended.
- Recorded Seminar Archive of Perimeter Institute: Một nguồn cực kì tốt để học sâu hơn với vô số video bài giảng từ chủ đề cơ bản đến nâng cao.
Các chủ đề khác (gợi ý để tự đọc thêm và để tìm kiếm bài báo)
- Sửa chữa lỗi (Error correcting)
- Độ phức tạp tính toán (Computational complexity)
- Nhân bản theo xác suất (Probabilistic cloning)
- Tối ưu lượng tử (Quantum optimization)
- Phân giải trạng thái lượng tử (Quantum state tomography)
- Lý thuyết đồ thị lượng tử (Quantum graph theory)
- Mô phỏng lượng tử (Quantum simulation)
- Điện toán lượng tử topo (Topological quantum computing)
- … (quá nhiều và quá khó)
Bắt tay vào làm nè
Đừng chỉ đọc sách suông. Thử cài đặt những gì bạn học và bạn sẽ thấy mình sẽ thông suốt chủ đề đó. Một số ngôn ngữ lập trình và thư viện phổ biến dùng trong điện toán lượng tử được liệt kê sau đây.
- Q# của Microsoft: Nền tảng tớ thích nhất. Nó có một danh sách bài tập và lời giải được thiết kế cho người mới học là Quantum Katas. Hoàn thành nó và bạn sẽ thấy cách bạn hiểu thay đổi như thế nào. Nhân tiện, đây cũng là ngôn ngữ được dùng cho Cuộc thi Lập trình Microsoft Q# tổ chức bởi CodeforcexMicrosoft (Đề bài từ những cuộc thi này cũng là một nguồn tốt để luyện tập).
- Python, Qiskit của IBM: Rất tốt với số lượng thư viện khổng lồ và sự hỗ trợ mạnh mẽ từ cộng đồng.
- IBM Q Experience: Một giao diện tương tác kéo thả mô phỏng mạch điện lượng tử. Bạn có thể chạy thuật toán lượng tử của riêng mình dùng những cỗ máy tính lượng tử hàng real của IBM để thấy cái gọi là đỉnh cao công nghệ máy tính lượng tử lỗi nhiều tới mức nào. Chỉ nói thế thôi chứ dùng vẫn ngon lành nhé.