# Syllabus quantum computing (2)

# GIAI ĐOẠN 2 - QUANTUM INFORMATION THEORY (80 ngày, Ngày 211–290)

## MODULE 2.1 - QUBITS (Ngày 211–230)

**Ngày 211: Qubit dưới góc nhìn Thông tin**

*   Mục tiêu: Chuyển góc nhìn từ "hệ 2 mức vật lý" (Giai đoạn 1) sang "đơn vị thông tin lượng tử".
    
*   Lý thuyết: Định nghĩa qubit như đơn vị cơ bản của quantum information, khác gì so với việc chỉ coi nó là hệ vật lý.
    
*   Thực hành: Viết 1 đoạn so sánh góc nhìn vật lý (Giai đoạn 1) vs góc nhìn thông tin (Giai đoạn 2) cho cùng khái niệm |0⟩, |1⟩.
    

**Ngày 212: Qubit vs Classical Bit**

*   Mục tiêu: Hiểu rõ sự khác biệt về khả năng biểu diễn thông tin.
    
*   Lý thuyết: Bit cổ điển chỉ có 2 trạng thái rời rạc; qubit có continuum trạng thái nhưng chỉ trích xuất được 1 bit thông tin cổ điển khi đo (điểm mấu chốt sẽ gặp lại ở Holevo bound).
    
*   Thực hành: Liệt kê 3 điểm giống và 3 điểm khác nhau giữa bit và qubit.
    

**Ngày 213: No-Cloning Theorem - Giới thiệu**

*   Mục tiêu: Làm quen với định lý nền tảng nhất của quantum information.
    
*   Lý thuyết: Phát biểu: không tồn tại toán tử unitary nào sao chép được một trạng thái lượng tử bất kỳ chưa biết.
    
*   Thực hành: Đọc Nielsen & Chuang mục 12.1, ghi chú phát biểu định lý.
    

**Ngày 214: No-Cloning Theorem - Chứng minh**

*   Mục tiêu: Tự chứng minh được định lý bằng phản chứng.
    
*   Lý thuyết: Giả sử tồn tại U sao chép được |ψ⟩ và |φ⟩, dẫn đến mâu thuẫn với tính tuyến tính.
    
*   Thực hành: Viết lại chứng minh từng bước bằng ký hiệu của riêng bạn cho 2 trạng thái cụ thể |0⟩ và |+⟩.
    

**Ngày 215: Pure State - Ôn tập trong ngữ cảnh QI**

*   Mục tiêu: Củng cố lại khái niệm đã học ở Giai đoạn 1, nhấn mạnh vai trò trong lưu trữ thông tin.
    
*   Lý thuyết: Pure state mang thông tin đầy đủ nhất về một hệ.
    
*   Thực hành: 3 bài tập nhận diện pure state từ density matrix.
    

**Ngày 216: Mixed State - Ôn tập trong ngữ cảnh QI**

*   Mục tiêu: Hiểu mixed state biểu diễn sự thiếu thông tin (ignorance) hoặc entanglement với môi trường.
    
*   Lý thuyết: Hai nguồn gốc của mixed state: classical uncertainty và entanglement (qua partial trace).
    
*   Thực hành: Phân biệt 2 tình huống dẫn đến cùng 1 density matrix mixed nhưng nguồn gốc khác nhau.
    

**Ngày 217: Density Matrix cho Single Qubit - Đào sâu**

*   Mục tiêu: Thành thạo biểu diễn ρ = (I + r·σ)/2 với r là Bloch vector.
    
*   Lý thuyết: Công thức tổng quát density matrix 1 qubit theo Bloch vector.
    
*   Thực hành: Từ 1 Bloch vector cho trước, viết ra density matrix tường minh và ngược lại.
    

**Ngày 218: Multi-Qubit Systems - Qubit Register**

*   Mục tiêu: Mở rộng từ 1 qubit sang n qubit dưới góc nhìn lưu trữ thông tin.
    
*   Lý thuyết: n-qubit register, 2^n basis states.
    
*   Thực hành: Liệt kê toàn bộ 8 basis state của 1 register 3-qubit.
    

**Ngày 219: Basis States cho n-Qubit System**

*   Mục tiêu: Thành thạo ký hiệu rút gọn |x⟩ với x là số nhị phân.
    
*   Lý thuyết: |010⟩ ≡ |0⟩⊗|1⟩⊗|0⟩, quy ước đánh số qubit.
    
*   Thực hành: Viết 5 trạng thái register 4-qubit dưới cả 2 dạng ký hiệu.
    

**Ngày 220: Quantum State Space - Exponential Scaling**

*   Mục tiêu: Hiểu vì sao mô phỏng cổ điển hệ lượng tử lớn là bất khả thi (động lực cốt lõi của quantum computing).
    
*   Lý thuyết: Số tham số cần để mô tả n-qubit state tăng theo 2^n.
    
*   Thực hành: Tính số tham số thực cần lưu trữ cho hệ 10, 20, 50 qubit; so sánh với bộ nhớ máy tính hiện có.
    

**Ngày 221: Ôn tập tuần - Module 2.1 phần đầu**

*   Mục tiêu: Củng cố ngày 211–220.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 8 bài tập tổng hợp.
    

**Ngày 222: Fidelity - Khái niệm**

*   Mục tiêu: Học công cụ đo "độ giống nhau" giữa 2 trạng thái lượng tử (sẽ dùng lại nhiều ở Giai đoạn 6 khi đánh giá lỗi).
    
*   Lý thuyết: F(ψ,φ) = |⟨ψ|φ⟩| cho pure state; công thức tổng quát cho mixed state.
    
*   Thực hành: Tính fidelity giữa |0⟩ và |+⟩; giữa |0⟩ và |0⟩.
    

**Ngày 223: Trace Distance**

*   Mục tiêu: Học thước đo khoảng cách thứ hai, có ý nghĩa xác suất trực tiếp.
    
*   Lý thuyết: D(ρ,σ) = (1/2)Tr|ρ−σ|, liên hệ với khả năng phân biệt tối đa bằng đo lường.
    
*   Thực hành: Tính trace distance giữa 2 density matrix mẫu.
    

**Ngày 224: Distinguishability of Quantum States**

*   Mục tiêu: Hiểu vì sao các trạng thái không trực giao không thể phân biệt hoàn hảo bằng đo lường.
    
*   Lý thuyết: Liên hệ fidelity/trace distance với xác suất phân biệt thành công tối đa.
    
*   Thực hành: Tính xác suất phân biệt tối ưu giữa 2 trạng thái không trực giao cho trước.
    

**Ngày 225: Hệ quả của No-Cloning lên Quantum Information**

*   Mục tiêu: Kết nối No-cloning (Ngày 213–214) với distinguishability (Ngày 224) thành một mạch lý luận.
    
*   Lý thuyết: Vì không sao chép được và không phân biệt hoàn hảo được trạng thái không trực giao, bảo mật lượng tử (QKD, sẽ gặp ở Giai đoạn 9) trở nên khả thi.
    
*   Thực hành: Viết 1 đoạn giải thích logic: No-cloning + Non-orthogonality → Quantum Security.
    

**Ngày 226: Quantum Channels - Giới thiệu**

*   Mục tiêu: Làm quen với mô hình tổng quát cho "nhiễu"/"biến đổi" tác động lên trạng thái lượng tử (sẽ đào sâu ở Giai đoạn 6).
    
*   Lý thuyết: Kraus operators, ρ → ΣE\_kρE\_k†.
    
*   Thực hành: Đọc Nielsen & Chuang mục 8.2, ghi chú định nghĩa Kraus representation.
    

**Ngày 227: Depolarizing Channel - Ví dụ**

*   Mục tiêu: Thấy ví dụ cụ thể đầu tiên của quantum channel.
    
*   Lý thuyết: Depolarizing channel trộn trạng thái với maximally mixed state theo xác suất p.
    
*   Thực hành: Tính ρ\_out cho depolarizing channel với p = 0.1 áp lên trạng thái |0⟩⟨0|.
    

**Ngày 228: Dự án nhỏ - Qubit State Simulator**

*   Mục tiêu: Tổng hợp Module 2.1 vào code.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Viết class Python `Qubit` hỗ trợ: tạo state, tính density matrix, tính fidelity/trace distance với qubit khác, áp depolarizing channel.
    

**Ngày 229: Ôn tập tổng hợp Module 2.1**

*   Mục tiêu: Kết nối No-cloning → Fidelity/Trace distance → Quantum Channels.
    
*   Lý thuyết: Vẽ sơ đồ liên hệ.
    
*   Thực hành: 10 bài tập tổng hợp.
    

**Ngày 230: Kiểm tra kiến thức Module 2.1**

*   Mục tiêu: Tự đánh giá trước khi vào Entanglement chuyên sâu.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 15 câu bao quát Module 2.1.
    

## MODULE 2.2 - QUANTUM ENTANGLEMENT (Ngày 231–260)

**Ngày 231: Ôn lại và Đào sâu Bell States**

*   Mục tiêu: Củng cố kiến thức từ Giai đoạn 1 (Ngày 155) với độ chi tiết cao hơn.
    
*   Lý thuyết: 4 trạng thái Bell như một basis trực chuẩn đầy đủ của không gian 2-qubit (Bell basis).
    
*   Thực hành: Chứng minh 4 trạng thái Bell trực chuẩn với nhau (tính từng cặp inner product).
    

**Ngày 232: Bell State Measurement**

*   Mục tiêu: Hiểu cách đo lường trong Bell basis (kỹ thuật dùng lại ở Teleportation và Superdense Coding).
    
*   Lý thuyết: Mạch lượng tử biến đổi Bell basis về computational basis (CNOT + Hadamard).
    
*   Thực hành: Vẽ mạch Bell measurement bằng tay (2 gate: CNOT rồi H trên qubit điều khiển).
    

**Ngày 233: CHSH Game - Thực hành**

*   Mục tiêu: Biến bất đẳng thức CHSH (Giai đoạn 1, Ngày 158) thành một trò chơi cụ thể, dễ mô phỏng.
    
*   Lý thuyết: Luật chơi CHSH game, chiến lược cổ điển tối ưu (75%) vs chiến lược lượng tử (85.4%).
    
*   Thực hành: Mô phỏng CHSH game bằng Python: chiến lược cổ điển vs dùng cặp Bell state, so sánh tỷ lệ thắng qua 10000 lượt.
    

**Ngày 234: Entanglement như một Tài nguyên**

*   Mục tiêu: Hiểu tư duy "resource theory" - entanglement được coi là tài nguyên có thể định lượng, chuyển đổi, tiêu hao.
    
*   Lý thuyết: LOCC (Local Operations and Classical Communication), entanglement không tăng được dưới LOCC.
    
*   Thực hành: Đọc tóm tắt về LOCC, ghi chú 5 dòng về ý nghĩa "entanglement không tự sinh ra được".
    

**Ngày 235: GHZ States - Giới thiệu**

*   Mục tiêu: Mở rộng entanglement từ 2 hạt sang nhiều hạt.
    
*   Lý thuyết: |GHZ⟩ = (|000⟩+|111⟩)/√2, tổng quát hóa cho n qubit.
    
*   Thực hành: Vẽ mạch lượng tử tạo GHZ state cho 3 qubit (H + 2 CNOT).
    

**Ngày 236: GHZ States - Tính chất**

*   Mục tiêu: Hiểu GHZ state "mong manh" hơn Bell state thế nào.
    
*   Lý thuyết: Đo 1 qubit bất kỳ trong GHZ làm sụp đổ toàn bộ entanglement còn lại thành product state.
    
*   Thực hành: Tính trạng thái còn lại của 2 qubit sau khi đo qubit thứ nhất của GHZ state, cho cả 2 kết quả đo có thể.
    

**Ngày 237: W States - So sánh với GHZ**

*   Mục tiêu: Thấy có nhiều "loại" entanglement đa hạt khác nhau, không quy về một.
    
*   Lý thuyết: |W⟩ = (|001⟩+|010⟩+|100⟩)/√3, tính chất "bền" hơn GHZ khi mất 1 hạt.
    
*   Thực hành: Tính trạng thái còn lại của W state sau khi đo qubit thứ nhất, so sánh độ "còn entangled" với trường hợp GHZ ở Ngày 236.
    

**Ngày 238: Phân loại Entanglement Đa hạt**

*   Mục tiêu: Hiểu GHZ và W đại diện cho 2 lớp entanglement không thể chuyển đổi qua lại bằng LOCC.
    
*   Lý thuyết: Khái niệm entanglement class (giới thiệu sơ lược, không đi sâu toán học).
    
*   Thực hành: Đọc tóm tắt ngắn về phân loại GHZ-class vs W-class, ghi chú 5 dòng.
    

**Ngày 239: Ôn tập Bell/GHZ/W States**

*   Mục tiêu: Củng cố ngày 231–238.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 8 bài tập tổng hợp.
    

**Ngày 240: Superdense Coding - Giới thiệu Ý tưởng**

*   Mục tiêu: Thấy ứng dụng đầu tiên, đơn giản nhất của entanglement như tài nguyên truyền tin.
    
*   Lý thuyết: Gửi 2 bit cổ điển bằng cách chỉ truyền đi 1 qubit (nếu đã chia sẻ trước 1 cặp Bell).
    
*   Thực hành: Đọc Nielsen & Chuang mục 2.3, ghi chú ý tưởng tổng quát.
    

**Ngày 241: Superdense Coding - Protocol Chi tiết**

*   Mục tiêu: Thành thạo từng bước của giao thức.
    
*   Lý thuyết: 4 phép biến đổi (I, X, Z, XZ) tương ứng 4 tổ hợp 2-bit, áp lên qubit của Alice trước khi gửi.
    
*   Thực hành: Với cặp Bell |Φ+⟩ cho trước, tính trạng thái kết quả sau khi Alice áp cả 4 phép biến đổi.
    

**Ngày 242: Superdense Coding - Cài đặt Mô phỏng**

*   Mục tiêu: Kiểm chứng giao thức bằng code.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết mô phỏng Python đầy đủ: tạo Bell pair, Alice mã hóa 2-bit, Bob giải mã bằng Bell measurement, kiểm tra đúng cho cả 4 trường hợp.
    

**Ngày 243: Quantum Teleportation - Giới thiệu Ý tưởng**

*   Mục tiêu: Hiểu trực giác: dùng entanglement + 2 bit cổ điển để "chuyển" một trạng thái lượng tử chưa biết mà không vi phạm no-cloning.
    
*   Lý thuyết: Sơ đồ tổng quan giao thức, vai trò của Alice, Bob và cặp Bell chia sẻ trước.
    
*   Thực hành: Ôn lại sơ đồ khối đã vẽ ở Giai đoạn 1 Ngày 161, bổ sung chi tiết.
    

**Ngày 244: Quantum Teleportation - Protocol Chi tiết**

*   Mục tiêu: Thành thạo từng bước toán học của giao thức.
    
*   Lý thuyết: 3 bước: Bell measurement của Alice, gửi 2 bit cổ điển, Bob áp phép biến đổi tương ứng.
    
*   Thực hành: Viết ra tường minh trạng thái 3-qubit ban đầu (|ψ⟩⊗|Bell pair⟩) và triển khai theo Bell basis.
    

**Ngày 245: Quantum Teleportation - Chứng minh Đúng đắn**

*   Mục tiêu: Tự chứng minh giao thức hoạt động đúng cho trạng thái |ψ⟩ bất kỳ.
    
*   Lý thuyết: Khai triển đầy đủ theo 4 kết quả đo Bell measurement có thể, cho thấy Bob luôn khôi phục được |ψ⟩ sau khi áp đúng phép biến đổi.
    
*   Thực hành: Hoàn thành chứng minh từng bước bằng tay cho cả 4 trường hợp kết quả đo.
    

**Ngày 246: Quantum Teleportation - Cài đặt Mô phỏng**

*   Mục tiêu: Kiểm chứng giao thức bằng code cho một |ψ⟩ tùy ý.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết mô phỏng Python đầy đủ giao thức teleportation, kiểm tra fidelity giữa trạng thái gốc và trạng thái Bob nhận được = 1 cho 10 trạng thái ngẫu nhiên.
    

**Ngày 247: Vai trò của Classical Communication**

*   Mục tiêu: Hiểu rõ vì sao teleportation không cho phép truyền tin nhanh hơn ánh sáng (no-signaling).
    
*   Lý thuyết: Bob không thể khôi phục |ψ⟩ nếu chưa nhận 2 bit cổ điển từ Alice - entanglement một mình không truyền được thông tin.
    
*   Thực hành: Viết 1 đoạn giải thích tại sao teleportation tuân thủ thuyết tương đối hẹp.
    

**Ngày 248: Ôn tập Teleportation & Superdense Coding**

*   Mục tiêu: So sánh 2 giao thức - một "dùng entanglement để tiết kiệm qubit truyền", một "dùng entanglement để truyền qubit chưa biết".
    
*   Lý thuyết: Bảng so sánh input/output/tài nguyên của 2 giao thức.
    
*   Thực hành: 8 bài tập tổng hợp cả 2 giao thức.
    

**Ngày 249: Entanglement Swapping**

*   Mục tiêu: Hiểu kỹ thuật tạo entanglement giữa 2 hạt chưa từng tương tác trực tiếp (nền tảng cho quantum repeater ở Giai đoạn 9).
    
*   Lý thuyết: Bell measurement trên 2 hạt trung gian làm 2 hạt còn lại trở nên entangled.
    
*   Thực hành: Đọc tóm tắt entanglement swapping, vẽ sơ đồ khối 4 hạt minh họa.
    

**Ngày 250: Entanglement Distillation (giới thiệu sơ lược)**

*   Mục tiêu: Làm quen khái niệm "chưng cất" nhiều cặp entangled chất lượng thấp thành ít cặp chất lượng cao hơn.
    
*   Lý thuyết: Ý tưởng tổng quan, không đi sâu vào protocol cụ thể.
    
*   Thực hành: Đọc tóm tắt ngắn, ghi chú 5 dòng liên hệ với quantum networking (Giai đoạn 9).
    

**Ngày 251: Monogamy of Entanglement**

*   Mục tiêu: Hiểu tính chất đặc thù của entanglement không có ở tương quan cổ điển.
    
*   Lý thuyết: Nếu A entangled tối đa với B, A không thể đồng thời entangled với C.
    
*   Thực hành: Đọc phát biểu định lượng của monogamy (CKW inequality, chỉ cần hiểu ý nghĩa, không cần chứng minh), ghi chú.
    

**Ngày 252: Entanglement Witnesses (giới thiệu)**

*   Mục tiêu: Làm quen công cụ thực nghiệm để phát hiện entanglement mà không cần tomography đầy đủ.
    
*   Lý thuyết: Witness operator W sao cho Tr(Wρ) < 0 chỉ khi ρ entangled.
    
*   Thực hành: Đọc ví dụ witness đơn giản cho trạng thái Bell, ghi chú ý tưởng.
    

**Ngày 253: Ứng dụng Thực tế của Entanglement**

*   Mục tiêu: Tổng hợp lại toàn bộ ứng dụng đã học, tạo cầu nối sang QKD (Giai đoạn 9).
    
*   Lý thuyết: Liệt kê: QKD, teleportation, superdense coding, entanglement-enhanced sensing.
    
*   Thực hành: Viết 1 trang tổng hợp các ứng dụng thực tế của entanglement đã gặp trong syllabus.
    

**Ngày 254: Dự án - Bell State + Measurement Statistics**

*   Mục tiêu: Bắt đầu chuỗi 3 dự án tổng hợp Module 2.2.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Viết mô phỏng đo 10000 lần trên các trạng thái Bell theo nhiều basis khác nhau, vẽ histogram kết quả.
    

**Ngày 255: Dự án - Full Teleportation Simulation**

*   Mục tiêu: Hoàn thiện dự án teleportation với giao diện rõ ràng.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Đóng gói code Ngày 246 thành hàm `teleport(psi)` tái sử dụng được, viết unit test kiểm tra fidelity = 1.
    

**Ngày 256: Dự án - Full Superdense Coding Simulation**

*   Mục tiêu: Hoàn thiện dự án superdense coding với giao diện rõ ràng.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Đóng gói code Ngày 242 thành hàm `superdense_encode(bits)` / `superdense_decode()`, viết unit test cho cả 4 trường hợp.
    

**Ngày 257: Đọc bổ sung - Nielsen & Chuang**

*   Mục tiêu: Lấp lỗ hổng lý thuyết trước khi kiểm tra.
    
*   Lý thuyết: Đọc lại Nielsen & Chuang chương 2, mục 2.3 và các bài tập liên quan entanglement.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 258: Ôn tập tổng hợp Module 2.2**

*   Mục tiêu: Kết nối Bell states → GHZ/W → Superdense Coding → Teleportation → Entanglement Swapping.
    
*   Lý thuyết: Vẽ sơ đồ tổng thể liên hệ toàn module.
    
*   Thực hành: 12 bài tập tổng hợp.
    

**Ngày 259: Kiểm tra kiến thức Module 2.2**

*   Mục tiêu: Tự đánh giá tổng thể.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 18 câu bao quát Module 2.2.
    

**Ngày 260: Sửa lỗ hổng & Tổng kết Module 2.2**

*   Mục tiêu: Khắc phục điểm yếu, xác nhận sẵn sàng sang Module 2.3.
    
*   Lý thuyết: Ôn có trọng điểm các chủ đề sai nhiều nhất trong bài test.
    
*   Thực hành: Làm lại bài tập tương ứng với điểm yếu đã xác định.
    

## MODULE 2.3 - QUANTUM INFORMATION (Ngày 261–290)

**Ngày 261: Nhắc lại Shannon Entropy**

*   Mục tiêu: Ôn lại nhanh kiến thức từ Giai đoạn 0 (Ngày 39–41) làm nền so sánh với entropy lượng tử.
    
*   Lý thuyết: H(X) = -Σp(x)log p(x), ý nghĩa độ bất định thông tin.
    
*   Thực hành: Tính lại entropy cho 2 phân phối mẫu (ôn tập nhanh).
    

**Ngày 262: Von Neumann Entropy - Định nghĩa**

*   Mục tiêu: Học phiên bản lượng tử của Shannon entropy.
    
*   Lý thuyết: S(ρ) = -Tr(ρ log ρ), tính qua eigenvalue của ρ.
    
*   Thực hành: Tính S(ρ) cho density matrix chéo hóa sẵn (eigenvalue cho trước).
    

**Ngày 263: Von Neumann Entropy - Tính chất Cơ bản**

*   Mục tiêu: Nắm các tính chất quan trọng: không âm, bất biến unitary, cực đại khi maximally mixed.
    
*   Lý thuyết: S(ρ) ≥ 0, S(UρU†) = S(ρ), S(ρ) ≤ log(d) với d là số chiều.
    
*   Thực hành: Kiểm chứng S(I/2) = log(2) = 1 bit cho qubit maximally mixed.
    

**Ngày 264: Tính Von Neumann Entropy cho Density Matrix Cụ thể**

*   Mục tiêu: Thành thạo quy trình đầy đủ: chéo hóa → lấy eigenvalue → tính entropy.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Tính S(ρ) cho 3 density matrix chưa chéo hóa sẵn, phải tự tìm eigenvalue trước (dùng lại kỹ năng Giai đoạn 0).
    

**Ngày 265: Von Neumann Entropy của Pure State = 0**

*   Mục tiêu: Hiểu và chứng minh tính chất then chốt này.
    
*   Lý thuyết: Pure state có 1 eigenvalue = 1, còn lại = 0 → entropy = 0.
    
*   Thực hành: Chứng minh trực tiếp cho |0⟩⟨0| và |+⟩⟨+|.
    

**Ngày 266: Von Neumann Entropy như Thước đo Entanglement**

*   Mục tiêu: Kết nối lại với Ngày 160 (Giai đoạn 1), lần này với công cụ đầy đủ hơn.
    
*   Lý thuyết: Entanglement entropy = S(ρ\_A) với ρ\_A = partial trace của trạng thái ghép thuần khiết; càng lớn càng entangled.
    
*   Thực hành: Tính entanglement entropy cho Bell state, GHZ state (3 qubit), và so sánh với 1 product state (kết quả phải = 0).
    

**Ngày 267: Joint & Conditional Quantum Entropy**

*   Mục tiêu: Mở rộng entropy cho hệ ghép.
    
*   Lý thuyết: S(A,B) cho hệ ghép, S(A|B) = S(A,B) - S(B) (lưu ý: có thể âm - khác hoàn toàn cổ điển!).
    
*   Thực hành: Tính S(A|B) cho trạng thái Bell, quan sát kết quả âm và giải thích ý nghĩa (dấu hiệu entanglement).
    

**Ngày 268: Strong Subadditivity (giới thiệu)**

*   Mục tiêu: Biết đến định lý quan trọng nhất của lý thuyết entropy lượng tử (không cần chứng minh chặt).
    
*   Lý thuyết: S(A,B,C) + S(B) ≤ S(A,B) + S(B,C), ý nghĩa và ứng dụng trong việc chứng minh các giới hạn khác.
    
*   Thực hành: Đọc phát biểu định lý, ghi chú ý nghĩa trực giác.
    

**Ngày 269: Ôn tập Von Neumann Entropy**

*   Mục tiêu: Củng cố ngày 262–268.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 8 bài tập Von Neumann entropy (Nielsen & Chuang chương 11, chọn lọc).
    

**Ngày 270: Quantum Relative Entropy**

*   Mục tiêu: Học phiên bản lượng tử của KL divergence (Giai đoạn 0, Ngày 45).
    
*   Lý thuyết: S(ρ||σ) = Tr(ρ log ρ) - Tr(ρ log σ).
    
*   Thực hành: Tính quantum relative entropy giữa 2 density matrix mẫu.
    

**Ngày 271: Quantum Mutual Information**

*   Mục tiêu: Học phiên bản lượng tử của mutual information (Giai đoạn 0, Ngày 42).
    
*   Lý thuyết: I(A:B) = S(A) + S(B) - S(A,B).
    
*   Thực hành: Tính I(A:B) cho Bell state, so sánh với I(A:B) cho product state (phải = 0).
    

**Ngày 272: So sánh Entropy Cổ điển vs Lượng tử**

*   Mục tiêu: Tổng hợp lại điểm giống/khác giữa 2 hệ khái niệm đã học ở Giai đoạn 0 và hôm nay.
    
*   Lý thuyết: Lập bảng đối chiếu: Shannon ↔ Von Neumann, KL divergence ↔ Relative entropy, Mutual information cổ điển ↔ lượng tử.
    
*   Thực hành: Tự lập bảng so sánh 5 hàng, nêu rõ điểm khác biệt quan trọng nhất (conditional entropy có thể âm).
    

**Ngày 273: Holevo Bound - Động lực và Bối cảnh**

*   Mục tiêu: Hiểu câu hỏi mà Holevo bound trả lời: mã hóa thông tin cổ điển vào trạng thái lượng tử thì lấy lại được tối đa bao nhiêu?
    
*   Lý thuyết: Bối cảnh: Alice mã hóa message cổ điển thành ensemble trạng thái lượng tử, Bob đo để giải mã.
    
*   Thực hành: Đọc Nielsen & Chuang mục 12.1, ghi chú bối cảnh bài toán.
    

**Ngày 274: Holevo Bound - Phát biểu Định lý**

*   Mục tiêu: Thành thạo công thức χ = S(ρ) - Σp\_i S(ρ\_i).
    
*   Lý thuyết: χ (Holevo quantity) là giới hạn trên của thông tin cổ điển accessible được.
    
*   Thực hành: Tính χ cho 1 ensemble đơn giản gồm 2 trạng thái với xác suất bằng nhau.
    

**Ngày 275: Holevo Bound - Ý nghĩa**

*   Mục tiêu: Hiểu hệ quả sâu sắc: n qubit không thể mang lại nhiều hơn n bit thông tin cổ điển accessible, dù không gian trạng thái lớn hơn theo cấp số mũ.
    
*   Lý thuyết: Liên hệ lại với Ngày 220 (exponential scaling) - không gian trạng thái lớn không đồng nghĩa với truyền được nhiều thông tin cổ điển hơn.
    
*   Thực hành: Viết 1 đoạn giải thích nghịch lý: "state space lớn theo cấp số mũ, nhưng accessible information vẫn bị chặn tuyến tính".
    

**Ngày 276: Holevo Bound - Ví dụ Áp dụng**

*   Mục tiêu: Thực hành tính toán với ensemble phức tạp hơn.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Tính χ cho ensemble 4 trạng thái BB84 (|0⟩,|1⟩,|+⟩,|−⟩ với xác suất bằng nhau) - chuẩn bị trực tiếp cho QKD ở Giai đoạn 9.
    

**Ngày 277: Accessible Information**

*   Mục tiêu: Phân biệt χ (giới hạn lý thuyết) với accessible information thực tế đạt được bởi 1 phép đo cụ thể.
    
*   Lý thuyết: I\_acc ≤ χ, đẳng thức chỉ đạt được trong một số trường hợp đặc biệt.
    
*   Thực hành: Với ensemble ở Ngày 274, tính I\_acc khi Bob đo bằng 1 chiến lược đo cụ thể, so sánh với χ.
    

**Ngày 278: Ôn tập Holevo Bound**

*   Mục tiêu: Củng cố ngày 273–277.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 6 bài tập Holevo bound (Nielsen & Chuang chương 12, chọn lọc).
    

**Ngày 279: Quantum Data Compression (giới thiệu Schumacher Compression)**

*   Mục tiêu: Làm quen phiên bản lượng tử của định lý nén dữ liệu Shannon.
    
*   Lý thuyết: Von Neumann entropy S(ρ) là giới hạn nén tối ưu cho nguồn lượng tử (tương tự Shannon source coding theorem).
    
*   Thực hành: Đọc tóm tắt Schumacher compression, ghi chú liên hệ với Shannon entropy đã học ở Giai đoạn 0.
    

**Ngày 280: Quantum Channel Capacity (giới thiệu sơ lược)**

*   Mục tiêu: Làm quen khái niệm sẽ gặp lại khi học Quantum Networking (Giai đoạn 9).
    
*   Lý thuyết: Holevo-Schumacher-Westmoreland (HSW) theorem - giới hạn dung lượng kênh lượng tử cho thông tin cổ điển.
    
*   Thực hành: Đọc tóm tắt ngắn, ghi chú 5 dòng.
    

**Ngày 281: Dự án - Tính Von Neumann Entropy bằng Code**

*   Mục tiêu: Tổng hợp phần đầu Module 2.3 vào code.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Viết hàm Python `von_neumann_entropy(rho)` dùng `numpy.linalg.eigh`, kiểm thử trên 5 density matrix khác nhau (pure, mixed, maximally mixed).
    

**Ngày 282: Dự án - Tính Mutual Information Lượng tử bằng Code**

*   Mục tiêu: Tổng hợp phần entropy hệ ghép vào code.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Viết hàm Python tính I(A:B) cho 1 density matrix hệ ghép cho trước (dùng lại partial trace từ Ngày 116/118), kiểm thử trên Bell state và product state.
    

**Ngày 283: Đọc bổ sung - Nielsen & Chuang Chương 11**

*   Mục tiêu: Lấp lỗ hổng lý thuyết entropy trước khi kiểm tra.
    
*   Lý thuyết: Đọc lại toàn bộ chương 11 (Entropy and Information), tập trung các mục chưa rõ.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 284: Đọc bổ sung - Nielsen & Chuang Chương 12**

*   Mục tiêu: Lấp lỗ hổng lý thuyết Holevo bound trước khi kiểm tra.
    
*   Lý thuyết: Đọc lại toàn bộ chương 12 (Quantum Information Theory), tập trung các mục chưa rõ.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 285: Ôn tập tổng hợp - Quantum Entropy + Holevo Bound**

*   Mục tiêu: Kết nối Von Neumann entropy → Relative entropy → Mutual information → Holevo bound.
    
*   Lý thuyết: Vẽ sơ đồ liên hệ toàn bộ các khái niệm entropy đã học.
    
*   Thực hành: 10 bài tập tổng hợp.
    

**Ngày 286: Ôn tập tổng hợp toàn Module 2.3**

*   Mục tiêu: Củng cố toàn bộ Module 2.3.
    
*   Lý thuyết: Tổng hợp ngày 261–285.
    
*   Thực hành: 10 bài tập tổng hợp bổ sung.
    

**Ngày 287: Kiểm tra kiến thức Module 2.3**

*   Mục tiêu: Tự đánh giá tổng thể Module 2.3.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 18 câu bao quát Module 2.3.
    

**Ngày 288: Sửa lỗ hổng kiến thức**

*   Mục tiêu: Khắc phục điểm yếu phát hiện từ bài test Ngày 287.
    
*   Lý thuyết: Ôn có trọng điểm.
    
*   Thực hành: Làm lại bài tập tương ứng các chủ đề còn yếu.
    

**Ngày 289: Ôn tập tổng hợp toàn Giai đoạn 2**

*   Mục tiêu: Kết nối Qubits (2.1) → Entanglement (2.2) → Quantum Information (2.3) thành một mạch logic liền.
    
*   Lý thuyết: Vẽ sơ đồ tư duy tổng thể cho cả Giai đoạn 2, nhấn mạnh các khái niệm sẽ dùng lại ngay ở Giai đoạn 3 (circuit cho Bell/GHZ state) và Giai đoạn 4 (entanglement trong thuật toán Grover/Shor).
    
*   Thực hành: 12 bài tập tổng hợp toàn giai đoạn.
    

**Ngày 290: Tổng kết Giai đoạn 2**

*   Mục tiêu: Xác nhận sẵn sàng chuyển sang Giai đoạn 3 (Quantum Circuits).
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài kiểm tra tổng hợp 25 câu bao quát cả Giai đoạn 2; liệt kê 3 điểm yếu nhất cần ôn thêm trước khi bắt đầu học quantum gates và circuit model.
    

# GIAI ĐOẠN 3 - QUANTUM CIRCUITS (70 ngày, Ngày 291–360)

Mục tiêu chung: thành thạo mô hình mạch lượng tử (circuit model) - ngôn ngữ dùng để biểu diễn mọi thuật toán ở Giai đoạn 4, và tự tay xây dựng được một quantum simulator hoàn chỉnh làm nền tảng code dùng lại xuyên suốt các giai đoạn sau.

## MODULE 3.1 - QUANTUM GATES (Ngày 291–315)

**Ngày 291: Giới thiệu Quantum Gates**

*   Mục tiêu: Chuyển từ khái niệm "toán tử unitary" (Giai đoạn 1) sang khái niệm thực hành "gate" trong circuit model.
    
*   Lý thuyết: Gate = toán tử unitary tác động lên 1 hoặc nhiều qubit; mọi gate đều khả nghịch (reversible).
    
*   Thực hành: Liệt kê lại 3 tính chất của ma trận unitary đã học ở Giai đoạn 0/1, liên hệ trực tiếp với lý do mọi gate lượng tử phải unitary.
    

**Ngày 292: Pauli-X Gate**

*   Mục tiêu: Thành thạo gate "NOT lượng tử".
    
*   Lý thuyết: Ma trận X, tác động X|0⟩=|1⟩, X|1⟩=|0⟩, ý nghĩa hình học (quay 180° quanh trục x trên Bloch sphere).
    
*   Thực hành: Tính X|+⟩ và X|−⟩ bằng tay, giải thích kết quả trên Bloch sphere.
    

**Ngày 293: Pauli-Y Gate**

*   Mục tiêu: Thành thạo gate Y và vai trò của thành phần ảo.
    
*   Lý thuyết: Ma trận Y, quay 180° quanh trục y.
    
*   Thực hành: Tính Y|0⟩ và Y|1⟩ bằng tay, so sánh pha kết quả.
    

**Ngày 294: Pauli-Z Gate**

*   Mục tiêu: Thành thạo "phase-flip gate".
    
*   Lý thuyết: Ma trận Z, Z|0⟩=|0⟩, Z|1⟩=-|1⟩, quay 180° quanh trục z.
    
*   Thực hành: Tính Z|+⟩, quan sát nó biến thành |−⟩; giải thích bằng Bloch sphere.
    

**Ngày 295: Ôn tập 3 Pauli Gates**

*   Mục tiêu: Củng cố ngày 292–294, ghi nhớ chắc quan hệ giữa X, Y, Z.
    
*   Lý thuyết: XYZ = iI, các quan hệ hoán vị vòng (ôn lại commutator từ Giai đoạn 1 Ngày 166).
    
*   Thực hành: 6 bài tập tính toán chuỗi Pauli gate liên tiếp.
    

**Ngày 296: Hadamard Gate - Giới thiệu**

*   Mục tiêu: Làm quen với gate quan trọng nhất để tạo superposition.
    
*   Lý thuyết: Ma trận H = (1/√2)\[\[1,1\],\[1,-1\]\], H|0⟩=|+⟩, H|1⟩=|−⟩.
    
*   Thực hành: Tính H|+⟩ và H|−⟩ bằng tay, chứng minh H² = I.
    

**Ngày 297: Hadamard Gate - Tính chất**

*   Mục tiêu: Hiểu vai trò trung tâm của H trong hầu hết thuật toán lượng tử (sẽ gặp lại liên tục ở Giai đoạn 4).
    
*   Lý thuyết: H biến đổi giữa computational basis và Hadamard (X) basis; H trên n qubit tạo superposition đều của 2^n trạng thái.
    
*   Thực hành: Tính H⊗H tác động lên |00⟩, liệt kê kết quả dưới dạng tổ hợp tuyến tính của 4 basis state.
    

**Ngày 298: Phase Gate S**

*   Mục tiêu: Thành thạo gate phase π/2.
    
*   Lý thuyết: Ma trận S = \[\[1,0\],\[0,i\]\], S|1⟩ = i|1⟩, quay 90° quanh trục z.
    
*   Thực hành: Tính S² và so sánh với Z; giải thích bằng công thức.
    

**Ngày 299: T Gate (π/8 Gate)**

*   Mục tiêu: Thành thạo gate phase π/4, gate quan trọng nhất cho universal gate set (sẽ gặp lại ở Giai đoạn 6, magic state distillation).
    
*   Lý thuyết: Ma trận T = \[\[1,0\],\[0,e^(iπ/4)\]\], T² = S.
    
*   Thực hành: Tính T⁴ và T⁸, xác nhận T⁸ = I.
    

**Ngày 300: Universal Single-Qubit Gate Set**

*   Mục tiêu: Hiểu {H, T} đủ để xấp xỉ mọi gate 1-qubit (Solovay-Kitaev theorem, giới thiệu sơ lược).
    
*   Lý thuyết: Khái niệm universal gate set, tại sao cần cả gate Clifford (H, S) và non-Clifford (T).
    
*   Thực hành: Đọc tóm tắt Solovay-Kitaev theorem, ghi chú ý nghĩa (không cần chứng minh).
    

**Ngày 301: Rotation Gates - Đào sâu**

*   Mục tiêu: Ôn lại và thành thạo Rx, Ry, Rz đã giới thiệu ở Giai đoạn 1 (Ngày 191) với độ chi tiết tính toán cao hơn.
    
*   Lý thuyết: Công thức ma trận đầy đủ Rx(θ), Ry(θ), Rz(θ) theo θ.
    
*   Thực hành: Tính Rz(π/4) tường minh, so sánh với gate T (chỉ khác global phase).
    

**Ngày 302: Global Phase vs Relative Phase trong Gates**

*   Mục tiêu: Hiểu vì sao 2 gate khác nhau về công thức có thể tương đương vật lý.
    
*   Lý thuyết: Ôn lại Ngày 142 (Giai đoạn 1) trong ngữ cảnh gate: T và Rz(π/4) chỉ khác 1 global phase.
    
*   Thực hành: Chứng minh T = e^(iπ/4)Rz(π/4) bằng tính toán ma trận.
    

**Ngày 303: Gate Composition**

*   Mục tiêu: Thành thạo nhân nhiều gate liên tiếp thành 1 gate tổng hợp.
    
*   Lý thuyết: Thứ tự nhân ma trận ngược với thứ tự thời gian áp dụng gate (gate sau cùng nhân bên trái).
    
*   Thực hành: Tính ma trận tổng hợp của chuỗi gate H→S→H áp lên |0⟩.
    

**Ngày 304: Gate Decomposition**

*   Mục tiêu: Thực hành chiều ngược lại - phân rã 1 gate cho trước thành chuỗi gate cơ bản.
    
*   Lý thuyết: Kỹ thuật phân rã dùng Euler angles (ZYZ decomposition).
    
*   Thực hành: Phân rã gate X thành chuỗi H, S, T (hoặc tổ hợp tương đương), kiểm chứng lại bằng nhân ma trận.
    

**Ngày 305: Ma trận Biểu diễn Gate - Ôn tập Tổng hợp**

*   Mục tiêu: Củng cố toàn bộ các gate 1-qubit đã học.
    
*   Lý thuyết: Lập bảng tổng hợp: tên gate, ma trận, tác động lên |0⟩/|1⟩, ý nghĩa hình học trên Bloch sphere.
    
*   Thực hành: Tự điền đầy đủ bảng tổng hợp cho 8 gate: X, Y, Z, H, S, T, Rx, Ry, Rz.
    

**Ngày 306: Reversibility của Quantum Gates**

*   Mục tiêu: Hiểu sâu tại sao mọi gate lượng tử phải khả nghịch.
    
*   Lý thuyết: U†U = I đảm bảo luôn tồn tại gate ngược; liên hệ lại với reversible computing (Sipser, Giai đoạn 0 Ngày 76–78).
    
*   Thực hành: Tìm gate nghịch đảo của H, S, T bằng tay.
    

**Ngày 307: So sánh Gate Cổ điển vs Gate Lượng tử**

*   Mục tiêu: Đối chiếu 2 mô hình tính toán.
    
*   Lý thuyết: Gate cổ điển (AND, OR, NOT) thường không khả nghịch; gate lượng tử luôn khả nghịch.
    
*   Thực hành: Viết bảng so sánh 5 hàng: reversibility, số input/output, biểu diễn toán học, ví dụ, ứng dụng.
    

**Ngày 308: Dự án nhỏ - Single-Qubit Gate Simulator**

*   Mục tiêu: Tổng hợp phần đầu Module 3.1 vào code.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Viết class Python `SingleQubitGate` chứa ma trận của 8 gate đã học, hàm `apply(gate, state)` áp gate lên 1 state vector 2 chiều.
    

**Ngày 309: Trực quan hóa Gate Operations trên Bloch Sphere**

*   Mục tiêu: Kết nối code với trực giác hình học đã xây ở Giai đoạn 1 (Ngày 193).
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Mở rộng simulator Ngày 308 để vẽ vị trí trạng thái trước/sau khi áp mỗi gate lên Bloch sphere.
    

**Ngày 310: Ôn tập tuần**

*   Mục tiêu: Củng cố ngày 291–309.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 8 bài tập tổng hợp.
    

**Ngày 311: Bài tập Tổng hợp - Pauli + Hadamard**

*   Mục tiêu: Luyện tính toán tay thành thạo.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 8 bài tập chuỗi gate kết hợp X, Y, Z, H.
    

**Ngày 312: Bài tập Tổng hợp - Phase + T Gate**

*   Mục tiêu: Luyện tính toán tay thành thạo với gate phase.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 8 bài tập chuỗi gate kết hợp S, T, và Pauli gates.
    

**Ngày 313: Bài tập Tổng hợp - Rotation Gates**

*   Mục tiêu: Luyện tính toán với gate quay tổng quát.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 6 bài tập tính Rx(θ), Ry(θ), Rz(θ) với các giá trị θ khác nhau.
    

**Ngày 314: Ôn tập Tổng hợp Module 3.1**

*   Mục tiêu: Kết nối toàn bộ gate 1-qubit thành một hệ thống liền mạch.
    
*   Lý thuyết: Vẽ sơ đồ liên hệ giữa các gate (gate nào sinh ra gate nào qua composition).
    
*   Thực hành: 10 bài tập tổng hợp.
    

**Ngày 315: Kiểm tra kiến thức Module 3.1**

*   Mục tiêu: Tự đánh giá trước khi sang Multi-Qubit Gates.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 15 câu bao quát Module 3.1.
    

## MODULE 3.2 - MULTI-QUBIT GATES (Ngày 316–335)

**Ngày 316: CNOT Gate - Giới thiệu**

*   Mục tiêu: Làm quen với gate 2-qubit quan trọng nhất.
    
*   Lý thuyết: Controlled-NOT: nếu control qubit = |1⟩, áp X lên target qubit; ngược lại giữ nguyên.
    
*   Thực hành: Tính CNOT|00⟩, CNOT|01⟩, CNOT|10⟩, CNOT|11⟩ bằng tay.
    

**Ngày 317: CNOT Gate - Ma trận và Tính chất**

*   Mục tiêu: Thành thạo biểu diễn ma trận 4x4 của CNOT.
    
*   Lý thuyết: Ma trận CNOT tường minh, tính chất CNOT² = I.
    
*   Thực hành: Viết ma trận CNOT 4x4, kiểm chứng CNOT² = I bằng nhân ma trận.
    

**Ngày 318: CNOT Tạo Entanglement**

*   Mục tiêu: Kết nối trực tiếp với Giai đoạn 2 - hiểu vì sao mạch H+CNOT tạo ra Bell state.
    
*   Lý thuyết: Ôn lại mạch tạo Bell state (H trên qubit 1, rồi CNOT), chứng minh bằng tính toán.
    
*   Thực hành: Tính từng bước: |00⟩ → (H⊗I) → CNOT → kết quả, xác nhận ra |Φ+⟩.
    

**Ngày 319: Controlled-Z và Controlled-Phase Gates**

*   Mục tiêu: Mở rộng ý tưởng controlled gate sang các gate khác ngoài X.
    
*   Lý thuyết: CZ gate, Controlled-Phase gate CP(θ) - sẽ dùng lại ở Giai đoạn 4 (Quantum Fourier Transform).
    
*   Thực hành: Viết ma trận 4x4 của CZ, tính CZ|11⟩.
    

**Ngày 320: Controlled-U Tổng quát**

*   Mục tiêu: Hiểu công thức tổng quát cho controlled gate với U bất kỳ.
    
*   Lý thuyết: Controlled-U = |0⟩⟨0|⊗I + |1⟩⟨1|⊗U.
    
*   Thực hành: Viết ma trận Controlled-U tổng quát cho U = H, tính kết quả tác động lên |10⟩.
    

**Ngày 321: Ôn tập Controlled Gates 2-Qubit**

*   Mục tiêu: Củng cố ngày 316–320.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 8 bài tập controlled gates.
    

**Ngày 322: Toffoli Gate (CCNOT) - Giới thiệu**

*   Mục tiêu: Mở rộng sang gate 3-qubit đầu tiên.
    
*   Lý thuyết: Controlled-Controlled-NOT: áp X lên target chỉ khi cả 2 control qubit đều = |1⟩.
    
*   Thực hành: Tính Toffoli|110⟩ và Toffoli|111⟩ bằng tay.
    

**Ngày 323: Toffoli Gate - Tính Universal cho Reversible Classical Computing**

*   Mục tiêu: Hiểu vì sao Toffoli đủ để mô phỏng mọi mạch logic cổ điển (AND, OR, NOT) một cách khả nghịch.
    
*   Lý thuyết: Toffoli với 1 input cố định = 1 cho ra AND gate khả nghịch; liên hệ lại reversible computing (Giai đoạn 0).
    
*   Thực hành: Chứng minh Toffoli(a, b, 0) cho ra (a, b, a AND b).
    

**Ngày 324: Fredkin Gate (Controlled-SWAP)**

*   Mục tiêu: Làm quen gate 3-qubit thứ hai.
    
*   Lý thuyết: Nếu control = |1⟩, hoán đổi 2 target qubit; ngược lại giữ nguyên.
    
*   Thực hành: Tính Fredkin|101⟩ và Fredkin|011⟩ bằng tay.
    

**Ngày 325: SWAP Gate**

*   Mục tiêu: Học gate 2-qubit dùng để hoán đổi trạng thái giữa 2 qubit.
    
*   Lý thuyết: SWAP|ab⟩ = |ba⟩, phân rã SWAP thành 3 CNOT liên tiếp.
    
*   Thực hành: Chứng minh SWAP = CNOT(1,2)·CNOT(2,1)·CNOT(1,2) bằng tính toán ma trận.
    

**Ngày 326: So sánh Toffoli vs Fredkin**

*   Mục tiêu: Đối chiếu 2 gate 3-qubit về tính chất bảo toàn.
    
*   Lý thuyết: Fredkin bảo toàn số lượng bit = 1 (conservative logic); Toffoli thì không.
    
*   Thực hành: Viết bảng so sánh input/output cho cả 8 tổ hợp của cả 2 gate.
    

**Ngày 327: Xây dựng Toffoli từ Gate Cơ bản**

*   Mục tiêu: Thấy Toffoli không phải gate "nguyên thủy" mà phân rã được từ gate 1-qubit + CNOT.
    
*   Lý thuyết: Công thức phân rã Toffoli thành H, T, T†, CNOT (mạch kinh điển 6 CNOT + 7 single-qubit gate).
    
*   Thực hành: Vẽ lại mạch phân rã Toffoli theo tài liệu tham khảo, kiểm chứng bằng cách nhân toàn bộ ma trận thành phần.
    

**Ngày 328: Universal Gate Sets cho Quantum Computing**

*   Mục tiêu: Tổng hợp khái niệm "bộ gate tối thiểu đủ dùng" cho cả mạch cổ điển lẫn lượng tử nhúng trong mạch lượng tử.
    
*   Lý thuyết: {CNOT, H, T} là universal gate set tiêu chuẩn (Clifford+T); {CNOT} + mọi gate 1-qubit cũng universal.
    
*   Thực hành: Đọc Nielsen & Chuang mục 4.5, ghi chú các universal gate set khác nhau.
    

**Ngày 329: Ôn tập Universal Gate Sets**

*   Mục tiêu: Củng cố ngày 322–328.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 6 bài tập.
    

**Ngày 330: Dự án nhỏ - Multi-Qubit Gate Simulator**

*   Mục tiêu: Mở rộng simulator Ngày 308 sang gate nhiều qubit.
    
*   Lý thuyết: Dùng lại Kronecker product (Giai đoạn 0, Ngày 25) để xây ma trận gate trên hệ nhiều qubit.
    
*   Thực hành: Viết hàm Python áp CNOT, Toffoli, SWAP lên state vector n-qubit bất kỳ (dùng đúng vị trí control/target).
    

**Ngày 331: Bài tập Tổng hợp - CNOT + Controlled Gates**

*   Mục tiêu: Luyện tính toán tay với gate 2-qubit.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 8 bài tập chuỗi gate 2-qubit kết hợp.
    

**Ngày 332: Bài tập Tổng hợp - Toffoli + Fredkin**

*   Mục tiêu: Luyện tính toán tay với gate 3-qubit.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 6 bài tập chuỗi gate 3-qubit.
    

**Ngày 333: Đọc bổ sung - Nielsen & Chuang Chương Gates**

*   Mục tiêu: Lấp lỗ hổng lý thuyết trước khi kiểm tra.
    
*   Lý thuyết: Đọc lại Nielsen & Chuang mục 4.1–4.5.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 334: Ôn tập Tổng hợp Module 3.2**

*   Mục tiêu: Kết nối CNOT → Controlled-U → Toffoli → Fredkin → Universal gate sets.
    
*   Lý thuyết: Vẽ sơ đồ liên hệ toàn module.
    
*   Thực hành: 10 bài tập tổng hợp.
    

**Ngày 335: Kiểm tra kiến thức Module 3.2**

*   Mục tiêu: Tự đánh giá trước khi sang Circuit Model.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 15 câu bao quát Module 3.2.
    

## MODULE 3.3 - CIRCUIT MODEL (Ngày 336–360)

**Ngày 336: Quantum Circuit Diagram - Ký hiệu và Quy ước**

*   Mục tiêu: Đọc và vẽ được mạch lượng tử theo ký hiệu chuẩn.
    
*   Lý thuyết: Đường dây = qubit theo thời gian, ô vuông = gate, chấm đen = control, x trong vòng tròn = target của CNOT.
    
*   Thực hành: Vẽ tay mạch Bell state và mạch GHZ state (đã học ở Giai đoạn 2) theo đúng ký hiệu chuẩn.
    

**Ngày 337: Circuit Ordering**

*   Mục tiêu: Nắm chắc quy ước đọc mạch từ trái sang phải = thứ tự thời gian.
    
*   Lý thuyết: Đối chiếu với gate composition (Ngày 303) - thứ tự nhân ma trận ngược với thứ tự đọc mạch.
    
*   Thực hành: Cho 1 mạch 3 gate liên tiếp, viết ra biểu thức ma trận tổng hợp đúng thứ tự.
    

**Ngày 338: Depth và Width của Circuit**

*   Mục tiêu: Học 2 chỉ số cơ bản để đánh giá độ phức tạp mạch (sẽ dùng lại ở Giai đoạn 11 - Compiler).
    
*   Lý thuyết: Width = số qubit, Depth = số lớp gate tuần tự tối đa (gate có thể song song nếu không chung qubit).
    
*   Thực hành: Tính depth và width cho 3 mạch mẫu.
    

**Ngày 339: Reversible Computing - Khái niệm**

*   Mục tiêu: Ôn sâu lại khái niệm đã gặp ở Giai đoạn 0 và rải rác Module 3.1–3.2.
    
*   Lý thuyết: Mọi mạch lượng tử là 1 phép biến đổi khả nghịch trên toàn bộ state; không có "xóa thông tin" giữa chừng (khác cổng AND cổ điển).
    
*   Thực hành: Viết 1 đoạn giải thích vì sao mạch lượng tử không thể chứa gate như AND cổ điển trực tiếp.
    

**Ngày 340: Reversible Computing vs Classical Irreversible Computing**

*   Mục tiêu: Hiểu hệ quả nhiệt động lực học (Landauer's principle, giới thiệu sơ lược).
    
*   Lý thuyết: Landauer's principle: xóa 1 bit thông tin tiêu tốn năng lượng tối thiểu kT ln2; tính toán khả nghịch về nguyên tắc không tiêu tốn.
    
*   Thực hành: Đọc tóm tắt Landauer's principle, ghi chú liên hệ với lý do quantum computing phải khả nghịch.
    

**Ngày 341: Ancilla Qubits - Khái niệm**

*   Mục tiêu: Học kỹ thuật dùng qubit phụ để hỗ trợ tính toán (sẽ dùng lại rất nhiều ở Giai đoạn 4 và 6).
    
*   Lý thuyết: Ancilla qubit khởi tạo ở |0⟩, dùng làm không gian tính toán trung gian.
    
*   Thực hành: Xem lại mạch Toffoli decomposition (Ngày 327), xác định nếu có ancilla được dùng.
    

**Ngày 342: Uncomputing - Kỹ thuật Dọn Ancilla**

*   Mục tiêu: Hiểu vì sao cần "dọn dẹp" ancilla sau khi dùng xong (tránh entanglement không mong muốn với phần còn lại).
    
*   Lý thuyết: Kỹ thuật áp lại chuỗi gate ngược để đưa ancilla về |0⟩ mà không xóa kết quả chính.
    
*   Thực hành: Vẽ 1 mạch ví dụ minh họa: tính toán dùng ancilla → uncompute ancilla về |0⟩.
    

**Ngày 343: Circuit cho Bell State - Ôn lại**

*   Mục tiêu: Củng cố lại kỹ năng vẽ/đọc mạch cho trạng thái đã quen thuộc.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Vẽ đầy đủ cả 4 mạch tạo 4 trạng thái Bell (chỉ khác gate khởi tạo trước CNOT).
    

**Ngày 344: Circuit cho GHZ State - Ôn lại**

*   Mục tiêu: Mở rộng sang mạch nhiều qubit.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Vẽ mạch tạo GHZ state cho 4 và 5 qubit (mở rộng từ mạch 3 qubit đã học ở Giai đoạn 2).
    

**Ngày 345: Circuit cho Teleportation - Full Circuit**

*   Mục tiêu: Vẽ hoàn chỉnh mạch cho giao thức đã học ở Giai đoạn 2 (Ngày 244), lần này với đầy đủ ký hiệu đo lường và classical control.
    
*   Lý thuyết: Ký hiệu đo lường (đồng hồ), ký hiệu classical control (đường đôi) trên gate phụ thuộc kết quả đo.
    
*   Thực hành: Vẽ đầy đủ mạch teleportation 3-qubit với đúng ký hiệu chuẩn.
    

**Ngày 346: Circuit cho Superdense Coding - Full Circuit**

*   Mục tiêu: Vẽ hoàn chỉnh mạch cho giao thức Ngày 241.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Vẽ đầy đủ mạch superdense coding cho cả 4 trường hợp mã hóa.
    

**Ngày 347: Circuit Equivalence**

*   Mục tiêu: Hiểu 2 mạch khác nhau về hình thức có thể tương đương về phép biến đổi.
    
*   Lý thuyết: Các quy tắc biến đổi mạch tương đương (ví dụ: đảo thứ tự 2 gate hoạt động trên 2 qubit khác nhau).
    
*   Thực hành: Chứng minh 2 mạch cho trước tương đương bằng cách tính ma trận tổng hợp của cả hai.
    

**Ngày 348: Circuit Optimization - Giới thiệu Sơ lược**

*   Mục tiêu: Nhìn trước sang chủ đề sẽ đào sâu ở Giai đoạn 11 (Compiler & Runtime Internals).
    
*   Lý thuyết: Ý tưởng: rút gọn số gate/depth mà vẫn giữ nguyên phép biến đổi (ví dụ H·H = I nên có thể loại bỏ).
    
*   Thực hành: Tối ưu hóa 1 mạch mẫu có gate dư thừa, giảm số gate từ 8 xuống còn tối thiểu.
    

**Ngày 349: Ôn tập Circuit Model**

*   Mục tiêu: Củng cố ngày 336–348.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 10 bài tập tổng hợp.
    

**Ngày 350: Dự án Lớn - Quantum Simulator (Thiết kế Kiến trúc)**

*   Mục tiêu: Bắt đầu dự án tổng hợp toàn bộ Giai đoạn 3.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Thiết kế trên giấy kiến trúc simulator: class `QuantumCircuit`, class `Gate`, cách lưu trữ state vector, API dự kiến (`add_gate`, `run`, `measure`).
    

**Ngày 351: Dự án - Cài đặt State Vector Representation**

*   Mục tiêu: Xây nền tảng lưu trữ trạng thái.
    
*   Lý thuyết: State vector kích thước 2^n cho n qubit, dùng lại kiến thức Ngày 218–220 (Giai đoạn 2).
    
*   Thực hành: Viết class `QuantumCircuit` với constructor khởi tạo state |00...0⟩ cho n qubit bất kỳ.
    

**Ngày 352: Dự án - Cài đặt Single-Qubit Gate Application**

*   Mục tiêu: Áp gate 1-qubit lên đúng vị trí trong hệ n-qubit.
    
*   Lý thuyết: Dùng Kronecker product với các ma trận Identity ở các qubit không bị tác động.
    
*   Thực hành: Cài đặt hàm `apply_single_qubit_gate(gate, qubit_index)`, kiểm thử với H trên qubit 0 của hệ 3-qubit.
    

**Ngày 353: Dự án - Cài đặt Multi-Qubit Gate Application**

*   Mục tiêu: Mở rộng sang CNOT và Toffoli với control/target tùy ý.
    
*   Lý thuyết: Kỹ thuật xây ma trận đầy đủ 2^n x 2^n hoặc dùng phép toán trực tiếp trên chỉ số nhị phân (hiệu quả hơn cho n lớn).
    
*   Thực hành: Cài đặt hàm `apply_cnot(control, target)` và `apply_toffoli(c1, c2, target)`, kiểm thử trên hệ 3-qubit.
    

**Ngày 354: Dự án - Cài đặt Measurement**

*   Mục tiêu: Hoàn thiện chức năng đo lường theo Born rule (Giai đoạn 1, Ngày 145–146).
    
*   Lý thuyết: Tính xác suất từng outcome, lấy mẫu ngẫu nhiên theo phân phối đó, cập nhật state sau đo (collapse).
    
*   Thực hành: Cài đặt hàm `measure(qubit_index)` trả về 0/1 và cập nhật state vector tương ứng.
    

**Ngày 355: Dự án - Test Simulator với Bell State, GHZ State**

*   Mục tiêu: Kiểm chứng toàn bộ simulator bằng các trường hợp đã biết trước kết quả.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Chạy simulator tạo Bell state, đo 1000 lần, kiểm tra tỷ lệ 50-50 giữa |00⟩ và |11⟩; lặp lại cho GHZ state 3-qubit.
    

**Ngày 356: Dự án - Test Simulator với Teleportation Protocol**

*   Mục tiêu: Kiểm chứng simulator với 1 giao thức phức tạp hơn.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Cài đặt lại toàn bộ mạch teleportation (Ngày 345) bằng chính simulator vừa xây, kiểm tra fidelity = 1.
    

**Ngày 357: Dự án - Tối ưu hóa & Mở rộng**

*   Mục tiêu: Làm simulator dễ mở rộng cho các giai đoạn sau (Grover, Shor ở Giai đoạn 4).
    
*   Lý thuyết: Thiết kế API cho phép thêm gate mới dễ dàng (interface `Gate` tổng quát thay vì hard-code từng gate).
    
*   Thực hành: Refactor code để thêm 1 gate tùy chỉnh (ví dụ Rz(θ) bất kỳ) mà không cần sửa code lõi.
    

**Ngày 358: Đọc bổ sung & Ôn tập Tổng hợp Module 3.3**

*   Mục tiêu: Lấp lỗ hổng lý thuyết trước khi kiểm tra.
    
*   Lý thuyết: Đọc lại Nielsen & Chuang chương 4 (Quantum Circuits) trọn vẹn.
    
*   Thực hành: Ghi chú tổng hợp 2 trang + 8 bài tập ôn tập.
    

**Ngày 359: Kiểm tra kiến thức Module 3.3**

*   Mục tiêu: Tự đánh giá tổng thể Module 3.3.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 18 câu bao quát Module 3.3, kèm 1 câu hỏi thực hành yêu cầu viết code mạch cho 1 trạng thái cho trước.
    

**Ngày 360: Tổng kết Giai đoạn 3**

*   Mục tiêu: Xác nhận sẵn sàng chuyển sang Giai đoạn 4 (Quantum Algorithms) - giai đoạn quan trọng nhất của toàn syllabus.
    
*   Lý thuyết: Ôn lại toàn bộ 3 module: Quantum Gates, Multi-Qubit Gates, Circuit Model.
    
*   Thực hành: Bài kiểm tra tổng hợp 25 câu bao quát cả Giai đoạn 3; đảm bảo quantum simulator tự viết đã chạy đúng cho Bell state, GHZ state, teleportation trước khi bước sang Giai đoạn 4 (vì simulator này sẽ được dùng lại để cài đặt Deutsch-Jozsa, Grover, Shor).
