Syllabus quantum computing (6)
GIAI ĐOẠN 10 - QUANTUM MACHINE LEARNING (60 ngày, Ngày 851–910)
PHẦN A - NỀN TẢNG QML (Ngày 851–860)
Ngày 851: Tổng quan Quantum Machine Learning
Mục tiêu: Định vị QML trong bức tranh tổng thể syllabus, phân biệt các hướng chính.
Lý thuyết: 4 hướng chính: (1) dùng quantum computer tăng tốc ML cổ điển, (2) học trên dữ liệu lượng tử, (3) mô hình lai variational (VQE, QAOA), (4) quantum-inspired algorithm chạy trên máy cổ điển.
Thực hành: Đọc tổng quan ngắn phân loại 4 hướng, ghi chú hướng nào sẽ được học sâu trong giai đoạn này (chủ yếu hướng 3).
Ngày 852: Ôn lại Variational Circuits -
Mục tiêu: Củng cố nền tảng đã học ở Giai đoạn 8 (Ngày 777) trước khi đi sâu vào từng ứng dụng cụ thể.
Lý thuyết: Cấu trúc chung: state preparation → parameterized ansatz U(θ) → đo expectation value → cost function → optimizer cổ điển cập nhật θ.
Thực hành: Vẽ lại sơ đồ vòng lặp hybrid quantum-classical hoàn chỉnh, đánh dấu rõ phần nào chạy trên quantum computer, phần nào chạy trên máy cổ điển.
Ngày 853: Barren Plateaus
Mục tiêu: Học vấn đề kỹ thuật quan trọng nhất cản trở việc scale variational circuits.
Lý thuyết: Với ansatz đủ biểu đạt (expressive) và số qubit lớn, gradient của cost function theo θ suy giảm theo cấp số mũ về 0 trên hầu hết vùng tham số - làm optimizer "mù" không biết đi hướng nào.
Thực hành: Đọc tổng quan hiện tượng barren plateaus (McClean et al. 2018), ghi chú nguyên nhân chính (random initialization trên ansatz quá biểu đạt).
Ngày 854: Chiến lược Tránh Barren Plateaus
Mục tiêu: Học các giải pháp thực tế đang được dùng.
Lý thuyết: Layer-wise training (huấn luyện từng lớp mạch dần thay vì toàn bộ cùng lúc), warm-start (khởi tạo tham số gần nghiệm tốt đã biết thay vì ngẫu nhiên), chọn ansatz có cấu trúc hạn chế hơn (structured ansatz).
Thực hành: Viết 1 đoạn tổng hợp 3 chiến lược, đánh giá ưu nhược điểm mỗi cách.
Ngày 855: Expressibility và Entangling Capability của Ansatz
Mục tiêu: Học 2 chỉ số dùng đánh giá chất lượng 1 ansatz cụ thể.
Lý thuyết: Expressibility - mức độ ansatz phủ được không gian Hilbert khi θ thay đổi ngẫu nhiên; Entangling capability - mức độ ansatz tạo ra được entanglement.
Thực hành: So sánh 2 ansatz cụ thể (1 nông/ít entangling, 1 sâu/nhiều entangling) về mặt định tính theo 2 chỉ số này.
Ngày 856: Cost Function Landscape
Mục tiêu: Hiểu thách thức tối ưu hóa cổ điển đi kèm.
Lý thuyết: Cost function landscape thường không lồi (non-convex), nhiều local minima; các optimizer phù hợp: gradient descent với parameter-shift rule (Giai đoạn 8, Ngày 775), SPSA (Simultaneous Perturbation Stochastic Approximation) cho trường hợp nhiễu lớn.
Thực hành: Đọc tổng quan SPSA optimizer, ghi chú vì sao nó phù hợp hơn gradient descent chuẩn khi chạy trên hardware NISQ có nhiễu.
Ngày 857: NISQ Era - Đặc điểm và Giới hạn
Mục tiêu: Kết nối trực tiếp với Giai đoạn 6–7, xác định rõ tại sao QML là ứng dụng "phù hợp" nhất cho hardware hiện tại.
Lý thuyết: Noisy Intermediate-Scale Quantum - vài chục đến vài trăm qubit, không có full fault tolerance (Giai đoạn 6); variational algorithms chịu đựng nhiễu tốt hơn thuật toán fault-tolerant thuần túy (như Shor) vì có vòng lặp tự sửa qua optimizer cổ điển.
Thực hành: Viết 1 đoạn giải thích tại sao VQE/QAOA được coi là "NISQ-friendly" trong khi Shor's algorithm (Giai đoạn 4) cần fault tolerance đầy đủ.
Ngày 858: Quantum Advantage trong QML - Câu hỏi Mở
Mục tiêu: Có góc nhìn khoa học cân bằng, tránh cường điệu hóa.
Lý thuyết: Không có bằng chứng toán học chặt chẽ về quantum advantage tổng quát cho hầu hết bài toán ML thực tế; một số kết quả lý thuyết cho advantage trên bài toán được thiết kế đặc biệt (không nhất thiết phản ánh dữ liệu thực tế).
Thực hành: Đọc 1 bài phân tích khoa học cân bằng về "hype vs reality" trong QML, viết tóm tắt 1 trang.
Ngày 859: Đọc bổ sung - Survey QML
Mục tiêu: Có cái nhìn tổng thể từ tài liệu chuẩn của ngành.
Lý thuyết: Đọc 1 phần review paper QML uy tín (ví dụ Biamonte et al. "Quantum Machine Learning", Nature 2017, hoặc bản cập nhật hơn).
Thực hành: Ghi chú tổng hợp 2 trang.
Ngày 860: Ôn tập Tổng hợp Phần A
Mục tiêu: Củng cố ngày 851–859 trước khi vào từng thuật toán cụ thể.
Lý thuyết: Tổng hợp.
Thực hành: 8 bài tập tổng hợp.
PHẦN B - VARIATIONAL QUANTUM EIGENSOLVER (VQE) (Ngày 861–875)
Ngày 861: Ôn lại VQE Tổng quan
Mục tiêu: Kết nối lại với thực hành đã làm ở Giai đoạn 8 (Ngày 779, 785).
Lý thuyết: Ôn lại mục tiêu: tìm ground state energy của 1 Hamiltonian bằng vòng lặp hybrid.
Thực hành: Chạy lại code VQE cho H2 đã viết ở Giai đoạn 8, xác nhận vẫn hoạt động đúng.
Ngày 862: VQE - Lý thuyết Biến phân (Variational Principle)
Mục tiêu: Hiểu nền tảng vật lý đảm bảo thuật toán này hoạt động đúng.
Lý thuyết: Variational principle trong QM: ⟨ψ(θ)|H|ψ(θ)⟩ ≥ E_ground với mọi θ - do đó minimizing cost function luôn hội tụ về 1 upper bound của ground state energy thực.
Thực hành: Tự chứng minh variational principle bằng cách khai triển |ψ(θ)⟩ theo eigenbasis của H (dùng lại kiến thức Giai đoạn 1).
Ngày 863: VQE - Ansatz cho Quantum Chemistry (UCC)
Mục tiêu: Học ansatz chuyên biệt cho hóa học lượng tử, khác hardware-efficient ansatz đã dùng ở Giai đoạn 8.
Lý thuyết: Unitary Coupled Cluster ansatz - lấy cảm hứng từ phương pháp coupled cluster cổ điển trong hóa học lượng tử, có ý nghĩa vật lý rõ ràng hơn (mô tả kích thích electron).
Thực hành: Đọc tổng quan UCC ansatz (đặc biệt UCCSD - singles and doubles), ghi chú.
Ngày 864: Hardware-Efficient Ansatz vs Chemistry-Inspired Ansatz
Mục tiêu: So sánh 2 triết lý thiết kế ansatz.
Lý thuyết: Hardware-efficient (Giai đoạn 8, Ngày 781): ít gate, phù hợp NISQ nhưng dễ gặp barren plateaus và thiếu ý nghĩa vật lý; UCC: nhiều gate hơn, ý nghĩa vật lý rõ nhưng khó chạy trên NISQ hiện tại.
Thực hành: Lập bảng so sánh 2 loại ansatz theo 4 tiêu chí: số gate, ý nghĩa vật lý, độ nhạy barren plateaus, độ chính xác kỳ vọng.
Ngày 865: Hamiltonian Mapping - Jordan-Wigner, Bravyi-Kitaev
Mục tiêu: Học bước kỹ thuật bắt buộc để chuyển bài toán hóa học (fermion) sang ngôn ngữ qubit.
Lý thuyết: Fermion tuân thủ thống kê khác boson/qubit (liên hệ Giai đoạn 1, Ngày 204–206); Jordan-Wigner transformation và Bravyi-Kitaev transformation là 2 cách ánh xạ toán tử creation/annihilation fermion sang toán tử Pauli trên qubit.
Thực hành: Đọc tổng quan Jordan-Wigner transformation, ghi chú công thức ánh xạ cơ bản.
Ngày 866: Đo lường Expectation Value bằng Phân rã Pauli
Mục tiêu: Học kỹ thuật thực hành để tính ⟨H⟩ trên hardware thật.
Lý thuyết: Hamiltonian phân rã thành tổng các tích Pauli string (H = Σc_i P_i); mỗi P_i cần đo riêng (basis đo khác nhau), rồi tổng hợp lại theo trọng số c_i.
Thực hành: Với 1 Hamiltonian nhỏ đã phân rã thành 3 Pauli string, viết quy trình đo và tổng hợp expectation value.
Ngày 867: Ứng dụng cho Phân tử Lớn hơn
Mục tiêu: Mở rộng thực hành từ H2 (Giai đoạn 8) sang phân tử phức tạp hơn.
Lý thuyết: Số qubit cần thiết tăng theo số orbital electron; LiH cần nhiều qubit hơn H2, BeH2 nhiều hơn nữa.
Thực hành: Dùng
qml.qchem(PennyLane, Giai đoạn 8) lấy Hamiltonian cho LiH, ghi chú số qubit cần thiết.
Ngày 868: So sánh VQE với Phương pháp Cổ điển
Mục tiêu: Đặt VQE vào bối cảnh cạnh tranh với hóa học tính toán cổ điển.
Lý thuyết: Hartree-Fock (gần đúng bậc thấp, chạy nhanh) và CCSD (Coupled Cluster Singles Doubles, chính xác hơn nhưng tốn kém cho hệ lớn) là các baseline cổ điển chuẩn.
Thực hành: Tra cứu độ chính xác Hartree-Fock/CCSD cho phân tử H2, so sánh với kết quả VQE đã chạy ở Giai đoạn 8.
Ngày 869: Giới hạn Thực tế của VQE
Mục tiêu: Có góc nhìn thực tế về khoảng cách tới ứng dụng công nghiệp.
Lý thuyết: Số qubit cần cho phân tử có ý nghĩa công nghiệp (ví dụ chất xúc tác phức tạp) vượt xa khả năng NISQ hiện tại; độ sâu mạch UCC tăng nhanh theo kích thước hệ.
Thực hành: Viết 1 đoạn đánh giá thực tế: VQE hiện đang giải được bài toán ở quy mô nào so với bài toán có giá trị công nghiệp thực sự.
Ngày 870: Liên hệ QMA-hardness
Mục tiêu: Kết nối lại với Giai đoạn 5 (Ngày 507–509) để hiểu giới hạn lý thuyết, không chỉ giới hạn kỹ thuật.
Lý thuyết: Bài toán ground state energy tổng quát là QMA-hard - ngay cả quantum computer hoàn hảo cũng không giải được hiệu quả trong trường hợp tổng quát; VQE chỉ hiệu quả cho các trường hợp "dễ" thực tế (well-behaved Hamiltonian).
Thực hành: Viết 1 đoạn tổng hợp: VQE không phải "thuật toán vạn năng" cho mọi bài toán hóa học, mà là heuristic hiệu quả cho lớp bài toán con.
Ngày 871: Dự án - VQE cho LiH Molecule
Mục tiêu: Thực hành với phân tử lớn hơn H2.
Lý thuyết: Không có thêm.
Thực hành: Chạy VQE đầy đủ cho LiH bằng PennyLane, sử dụng UCCSD ansatz (nếu khả thi về tài nguyên tính toán) hoặc hardware-efficient ansatz, so sánh kết quả với giá trị tham khảo.
Ngày 872: Dự án - So sánh VQE với Các Ansatz Khác nhau
Mục tiêu: Thực nghiệm định lượng ảnh hưởng của lựa chọn ansatz.
Lý thuyết: Không có thêm.
Thực hành: Chạy VQE cho cùng 1 Hamiltonian (H2 hoặc LiH) với 3 ansatz khác nhau, so sánh tốc độ hội tụ và độ chính xác cuối cùng.
Ngày 873: Đọc Paper VQE Gốc
Mục tiêu: Tiếp cận trực tiếp paper nghiên cứu gốc giới thiệu VQE.
Lý thuyết: Đọc abstract và introduction của Peruzzo et al., "A variational eigenvalue solver on a photonic quantum processor" (2014).
Thực hành: Viết tóm tắt 1 trang bằng lời riêng, đối chiếu với những gì đã học.
Ngày 874: Ôn tập Tổng hợp Phần B
Mục tiêu: Kết nối Variational Principle → Ansatz → Hamiltonian Mapping → Ứng dụng → Giới hạn.
Lý thuyết: Vẽ sơ đồ tổng thể.
Thực hành: 10 bài tập tổng hợp.
Ngày 875: Kiểm tra kiến thức Phần B
Mục tiêu: Tự đánh giá trước khi sang QAOA.
Lý thuyết: Không có.
Thực hành: Bài test 15 câu bao quát Phần B.
PHẦN C - QUANTUM APPROXIMATE OPTIMIZATION ALGORITHM (QAOA) (Ngày 876–890)
Ngày 876: Ôn lại QAOA Tổng quan
Mục tiêu: Kết nối lại với thực hành đã làm ở Giai đoạn 8 (Ngày 780, 786).
Lý thuyết: Ôn lại mục tiêu: tìm nghiệm gần đúng cho bài toán tối ưu hóa tổ hợp (Ising/QUBO, Giai đoạn 7).
Thực hành: Chạy lại code QAOA cho Max-Cut đã viết ở Giai đoạn 8, xác nhận vẫn hoạt động đúng.
Ngày 877: QAOA - Lý thuyết Chi tiết
Mục tiêu: Thành thạo cấu trúc toán học đầy đủ.
Lý thuyết: 2 Hamiltonian xen kẽ: cost Hamiltonian H_C (mã hóa bài toán, Giai đoạn 7 Ngày 720) và mixer Hamiltonian H_M (thường ΣX_i, tạo chuyển đổi giữa các trạng thái).
Thực hành: Viết tường minh H_C cho bài toán Max-Cut trên 1 đồ thị nhỏ cụ thể.
Ngày 878: QAOA - p-Level Circuit
Mục tiêu: Hiểu tham số p và ảnh hưởng của nó.
Lý thuyết: Mạch QAOA lặp lại p lần cặp (e^(-iγH_C), e^(-iβH_M)); p càng lớn, kết quả càng gần tối ưu (liên hệ trực tiếp Adiabatic theorem, Giai đoạn 7 Ngày 717 - p→∞ tiệm cận adiabatic evolution).
Thực hành: Viết 1 đoạn giải thích mối liên hệ giữa QAOA (p lớn) và Adiabatic Quantum Computing đã học.
Ngày 879: QAOA - Tối ưu hóa Tham số (γ, β)
Mục tiêu: Học quy trình tìm tham số tối ưu cho mixer/cost Hamiltonian.
Lý thuyết: 2p tham số cần tối ưu hóa bằng optimizer cổ điển (dùng lại vòng lặp hybrid, Ngày 852).
Thực hành: Chạy tối ưu hóa tham số cho QAOA p=1, p=2, p=3 trên cùng 1 bài toán, so sánh chất lượng nghiệm.
Ngày 880: QAOA và Adiabatic Quantum Computing
Mục tiêu: liên hệ đã nhắc ở Ngày 878.
Lý thuyết: QAOA là 1 dạng rời rạc hóa (Trotterized) của adiabatic evolution; khi p→∞ và tham số chọn đúng, QAOA hội tụ về nghiệm chính xác theo adiabatic theorem (Giai đoạn 7, Ngày 717).
Thực hành: Viết 1 trang tổng hợp mối liên hệ này, bao gồm cả điểm khác biệt thực tế (QAOA dùng số bước hữu hạn, chấp nhận sai số).
Ngày 881: QAOA cho Max-Cut - Chi tiết Đầy đủ
Mục tiêu: Thành thạo ví dụ kinh điển nhất từ đầu đến cuối.
Lý thuyết: Tổng hợp toàn bộ: đồ thị → cost Hamiltonian → mạch QAOA → tối ưu hóa → đọc nghiệm từ kết quả đo.
Thực hành: Tự giải hoàn chỉnh bằng tay (không dùng thư viện) cho đồ thị 4 đỉnh, p=1.
Ngày 882: QAOA cho Các Bài toán Khác
Mục tiêu: Mở rộng hiểu biết ra ngoài Max-Cut.
Lý thuyết: Traveling Salesman Problem, Graph Coloring - đều mã hóa được dưới dạng QUBO (Giai đoạn 7, Ngày 721) với ràng buộc bổ sung (constraint terms).
Thực hành: Đọc tổng quan cách mã hóa TSP dưới dạng QUBO, ghi chú các constraint term cần thiết.
Ngày 883: QAOA Performance Guarantee
Mục tiêu: Học kết quả lý thuyết định lượng chất lượng nghiệm QAOA.
Lý thuyết: Approximation ratio - tỷ lệ giữa giá trị nghiệm QAOA tìm được và giá trị tối ưu thực; kết quả gốc của Farhi et al. cho Max-Cut với p=1 đạt tỷ lệ xấp xỉ 0.6924 trên đồ thị 3-regular.
Thực hành: Đọc tổng quan kết quả approximation ratio gốc, ghi chú.
Ngày 884: So sánh QAOA vs Classical Approximation Algorithms
Mục tiêu: Đặt QAOA vào bối cảnh cạnh tranh thực tế.
Lý thuyết: Goemans-Williamson algorithm (cổ điển, dùng semidefinite programming) đạt approximation ratio ~0.878 cho Max-Cut - tốt hơn QAOA p=1.
Thực hành: Lập bảng so sánh approximation ratio giữa QAOA (các mức p) và Goemans-Williamson, ghi chú xu hướng khi p tăng.
Ngày 885: Giới hạn Thực tế và Tranh cãi về Quantum Advantage
Mục tiêu: Có góc nhìn khoa học cân bằng (nối tiếp Ngày 858).
Lý thuyết: Chưa có bằng chứng thuyết phục QAOA vượt trội thuật toán cổ điển tốt nhất trên bài toán thực tế quy mô lớn; đây vẫn là câu hỏi nghiên cứu mở.
Thực hành: Đọc 1 bài phân tích khoa học về giới hạn thực nghiệm của QAOA, viết tóm tắt cân bằng.
Ngày 886: Dự án - QAOA cho Bài toán TSP Nhỏ
Mục tiêu: Mở rộng thực hành ra ngoài Max-Cut.
Lý thuyết: Không có thêm.
Thực hành: Mã hóa 1 instance TSP nhỏ (4-5 thành phố) dưới dạng QUBO, chạy QAOA, so sánh với brute-force.
Ngày 887: Dự án - Phân tích Performance QAOA theo p
Mục tiêu: Thực nghiệm định lượng xu hướng đã học ở Ngày 878–880.
Lý thuyết: Không có thêm.
Thực hành: Chạy QAOA cho cùng 1 bài toán Max-Cut với p=1,2,3,4,5, vẽ đồ thị approximation ratio theo p.
Ngày 888: Đọc Paper QAOA Gốc
Mục tiêu: Tiếp cận trực tiếp paper nghiên cứu gốc.
Lý thuyết: Đọc abstract và introduction của Farhi, Goldstone, Gutmann, "A Quantum Approximate Optimization Algorithm" (2014).
Thực hành: Viết tóm tắt 1 trang bằng lời riêng.
Ngày 889: Ôn tập Tổng hợp Phần C
Mục tiêu: Kết nối Cost/Mixer Hamiltonian → p-level → Optimization → Performance Guarantee.
Lý thuyết: Vẽ sơ đồ tổng thể.
Thực hành: 10 bài tập tổng hợp.
Ngày 890: Kiểm tra kiến thức Phần C
Mục tiêu: Tự đánh giá trước khi sang Quantum Kernels.
Lý thuyết: Không có.
Thực hành: Bài test 15 câu bao quát Phần C.
PHẦN D - QUANTUM KERNELS VÀ CÁC MÔ HÌNH QML KHÁC (Ngày 891–905)
Ngày 891: Quantum Kernels - Động lực
Mục tiêu: Kết nối QML với kernel methods đã biết trong ML cổ điển (giả định người học đã quen SVM cổ điển; nếu chưa, đọc bổ sung).
Lý thuyết: Kernel trick trong classical ML: tính similarity giữa 2 điểm dữ liệu trong không gian đặc trưng chiều cao mà không cần tính tường minh; quantum kernel dùng Hilbert space của qubit làm không gian đặc trưng đó.
Thực hành: Đọc tổng quan ngắn về kernel trick cổ điển (nếu cần ôn lại), ghi chú ý tưởng chính.
Ngày 892: Quantum Feature Map
Mục tiêu: Học bước đầu tiên: mã hóa dữ liệu cổ điển vào trạng thái lượng tử.
Lý thuyết: Kết nối lại Giai đoạn 8 (Ngày 782, data encoding); feature map Φ(x) = U(x)|0⟩ với U(x) là mạch phụ thuộc dữ liệu x.
Thực hành: Viết 1 feature map đơn giản (angle encoding) cho vector dữ liệu 2 chiều.
Ngày 893: Quantum Kernel - Tính toán bằng Fidelity
Mục tiêu: Thành thạo công thức tính kernel.
Lý thuyết: K(x,y) = |⟨Φ(x)|Φ(y)⟩|² - chính là fidelity đã học ở Giai đoạn 2 (Ngày 222), tính bằng cách chạy mạch U(y)†U(x) và đo xác suất về |0⟩^n.
Thực hành: Tính kernel K(x,y) bằng tay cho 2 điểm dữ liệu đơn giản với feature map đã viết ở Ngày 892.
Ngày 894: Quantum Support Vector Machine
Mục tiêu: Học ứng dụng trực tiếp của quantum kernel vào bài toán phân loại.
Lý thuyết: Thay kernel cổ điển (RBF, polynomial) bằng quantum kernel trong SVM chuẩn - phần huấn luyện SVM còn lại vẫn hoàn toàn cổ điển.
Thực hành: Đọc tổng quan Quantum SVM, ghi chú vì sao chỉ phần tính kernel matrix là "lượng tử", phần optimization vẫn cổ điển.
Ngày 895: Quantum Advantage trong Kernel Methods - Điều kiện Lý thuyết
Mục tiêu: Học 1 trong số ít trường hợp có bằng chứng lý thuyết chặt chẽ về quantum advantage trong QML.
Lý thuyết: Kết quả của Liu et al. (2021) chứng minh advantage cho 1 bài toán phân loại được thiết kế đặc biệt dựa trên discrete logarithm (liên hệ Giai đoạn 4 - họ hàng bài toán mà Shor's algorithm giải quyết).
Thực hành: Đọc tổng quan kết quả này, ghi chú tại sao đây là ví dụ hiếm hoi có "chứng minh" thay vì chỉ "hy vọng" quantum advantage.
Ngày 896: Quantum Neural Networks - Khái niệm Tổng quát
Mục tiêu: Học khung tổng quát hơn kernel method, gần hơn với deep learning cổ điển.
Lý thuyết: Parameterized quantum circuit đóng vai trò tương tự neural network - layer lặp lại, tham số huấn luyện được bằng gradient (parameter-shift rule).
Thực hành: Vẽ sơ đồ so sánh cấu trúc QNN với 1 mạng neural network cổ điển đơn giản (feedforward).
Ngày 897: Data Re-uploading
Mục tiêu: Học kỹ thuật tăng khả năng biểu đạt của circuit nhỏ mà không cần thêm qubit.
Lý thuyết: Đưa dữ liệu vào mạch nhiều lần xen kẽ với các lớp tham số (thay vì chỉ 1 lần ở đầu), giúp mạch nhỏ biểu đạt được hàm phức tạp hơn (tương tự Fourier series với nhiều tần số).
Thực hành: Đọc tổng quan data re-uploading, ghi chú ý tưởng chính.
Ngày 898: Quantum Convolutional Neural Network - Giới thiệu Sơ lược
Mục tiêu: Làm quen kiến trúc lấy cảm hứng từ CNN cổ điển.
Lý thuyết: QCNN dùng cấu trúc convolution + pooling bằng gate lượng tử, giảm dần số qubit qua các lớp - được thiết kế đặc biệt để tránh barren plateaus (Ngày 853) tốt hơn ansatz tổng quát.
Thực hành: Đọc tổng quan QCNN, ghi chú lý do kiến trúc này chống barren plateaus tốt hơn.
Ngày 899: Quantum Generative Adversarial Network - Giới thiệu Sơ lược
Mục tiêu: Làm quen mô hình sinh dữ liệu lượng tử.
Lý thuyết: QGAN - generator và discriminator đều có thể là mạch lượng tử hoặc lai, cạnh tranh với nhau tương tự GAN cổ điển.
Thực hành: Đọc tổng quan QGAN, ghi chú ứng dụng tiềm năng (ví dụ sinh phân phối xác suất phức tạp).
Ngày 900: Quantum Reinforcement Learning - Giới thiệu Sơ lược
Mục tiêu: Làm quen hướng kết hợp thứ ba.
Lý thuyết: Dùng quantum circuit làm policy hoặc value function trong khung reinforcement learning cổ điển.
Thực hành: Đọc tổng quan ngắn về Quantum RL, ghi chú.
Ngày 901: So sánh Các Mô hình QML Đã học
Mục tiêu: Tổng hợp toàn bộ Phần D.
Lý thuyết: Không có thêm.
Thực hành: Lập bảng so sánh: Quantum Kernel/SVM, QNN, QCNN, QGAN, Quantum RL - theo tiêu chí: độ trưởng thành nghiên cứu, bằng chứng advantage, độ phức tạp cài đặt.
Ngày 902: Dự án - Quantum Classifier cho Bài toán Phân loại Nhỏ
Mục tiêu: Thực hành tổng hợp với bộ dữ liệu chuẩn.
Lý thuyết: Không có thêm.
Thực hành: Dùng PennyLane xây quantum classifier (feature map + variational circuit) cho bài toán Iris dataset (rút gọn về phân loại nhị phân 2 lớp), huấn luyện và đánh giá độ chính xác.
Ngày 903: Dự án - So sánh Quantum Kernel vs Classical Kernel
Mục tiêu: Đánh giá thực nghiệm trên cùng bộ dữ liệu.
Lý thuyết: Không có thêm.
Thực hành: Chạy SVM với quantum kernel (Ngày 894) và SVM với RBF kernel cổ điển trên cùng dữ liệu Ngày 902, so sánh độ chính xác.
Ngày 904: Ôn tập Tổng hợp Phần D
Mục tiêu: Kết nối Feature Map → Kernel → QSVM → QNN → Các biến thể khác.
Lý thuyết: Vẽ sơ đồ tổng thể.
Thực hành: 10 bài tập tổng hợp.
Ngày 905: Kiểm tra kiến thức Phần D
Mục tiêu: Tự đánh giá tổng thể Phần D.
Lý thuyết: Không có.
Thực hành: Bài test 15 câu bao quát Phần D.
DỰ ÁN TỔNG HỢP CUỐI GIAI ĐOẠN (Ngày 906–910)
Ngày 906: Dự án Tổng hợp - Chọn Bài toán Thực tế
Mục tiêu: Tổng hợp toàn bộ Giai đoạn 10 vào 1 dự án cá nhân có ý nghĩa.
Lý thuyết: Không có.
Thực hành: Chọn 1 trong 3 hướng (VQE cho 1 phân tử mới, QAOA cho 1 bài toán tối ưu hóa thực tế, hoặc QML classifier cho 1 bộ dữ liệu khác), viết đề xuất ngắn (mục tiêu, phương pháp, baseline so sánh).
Ngày 907: Dự án Tổng hợp - Cài đặt và Tối ưu hóa
Mục tiêu: Hiện thực hóa đề xuất.
Lý thuyết: Không có.
Thực hành: Cài đặt đầy đủ pipeline (ansatz, cost function, optimizer), chạy và tinh chỉnh siêu tham số (số layer, optimizer, learning rate).
Ngày 908: Dự án Tổng hợp - Đánh giá Kết quả
Mục tiêu: Hoàn thiện dự án với đánh giá khách quan.
Lý thuyết: Không có.
Thực hành: So sánh kết quả với baseline cổ điển tương ứng, viết nhận xét trung thực về việc có/không quan sát được lợi thế (giữ tinh thần hoài nghi khoa học đã rèn luyện ở Ngày 858, 885).
Ngày 909: Ôn tập Tổng hợp Toàn Giai đoạn 10
Mục tiêu: Kết nối 4 phần: Nền tảng QML → VQE → QAOA → Quantum Kernels/QNN.
Lý thuyết: Vẽ sơ đồ tư duy tổng thể toàn Giai đoạn 10.
Thực hành: 15 bài tập tổng hợp toàn giai đoạn.
Ngày 910: Tổng kết Giai đoạn 10
Mục tiêu: Xác nhận sẵn sàng chuyển sang Giai đoạn 11 (Quantum Compiler & Runtime Internals).
Lý thuyết: Ôn lại toàn bộ Giai đoạn 10; nhấn mạnh rằng mọi thuật toán variational đã học đều phụ thuộc nặng vào transpiler/compiler (Giai đoạn 8, Ngày 743) để chạy hiệu quả trên hardware thật - cầu nối trực tiếp sang giai đoạn kế tiếp.
Thực hành: Bài kiểm tra tổng hợp 30 câu bao quát cả Giai đoạn 10; liệt kê 3 điểm yếu nhất cần ôn thêm.
GIAI ĐOẠN 11 - QUANTUM COMPILER & RUNTIME INTERNALS (70 ngày, Ngày 911–980)
PHẦN A - QUANTUM IR VÀ ASSEMBLY LANGUAGES (Ngày 911–925)
Ngày 911: Giới thiệu Compiler Stack cho Quantum Computing
Mục tiêu: Có bức tranh tổng thể trước khi đi vào chi tiết từng tầng.
Lý thuyết: Tầng: high-level framework (Qiskit/Cirq/PennyLane, Giai đoạn 8) → Intermediate Representation → Assembly (OpenQASM) → Pulse-level (Phần D) → hardware thật (Giai đoạn 7).
Thực hành: Vẽ sơ đồ khối 5 tầng này, đánh dấu ví dụ cụ thể ở mỗi tầng dựa trên kiến thức đã học.
Ngày 912: So sánh với Classical Compiler Stack
Mục tiêu: Kết nối lại với kiến thức compiler cổ điển (nếu người học đã biết) để thấy sự tương đồng cấu trúc.
Lý thuyết: Classical: source code → AST → IR (như LLVM IR) → assembly → machine code; quantum có cấu trúc phân tầng tương tự nhưng với ràng buộc vật lý đặc thù (coupling map, Giai đoạn 7).
Thực hành: Viết bảng đối chiếu song song 5 tầng cổ điển và 5 tầng lượng tử.
Ngày 913: OpenQASM - Giới thiệu
Mục tiêu: Làm quen ngôn ngữ assembly lượng tử phổ biến nhất, chuẩn de facto của ngành.
Lý thuyết: Open Quantum Assembly Language - ngôn ngữ văn bản mô tả circuit ở mức gate, độc lập với framework cụ thể (Qiskit dùng nó làm định dạng trung gian).
Thực hành: Đọc tổng quan OpenQASM, ghi chú lịch sử phát triển (IBM khởi xướng).
Ngày 914: OpenQASM 2.0 - Cú pháp Cơ bản
Mục tiêu: Thành thạo cú pháp phiên bản phổ biến nhất hiện dùng rộng rãi.
Lý thuyết: Khai báo
qreg,creg, cú pháp gate (h q[0];,cx q[0],q[1];),measure.Thực hành: Viết tay (không qua Qiskit) 1 file OpenQASM 2.0 hoàn chỉnh cho mạch Bell state.
Ngày 915: OpenQASM 3.0 - Cải tiến
Mục tiêu: Học phiên bản mở rộng, bổ sung tính năng còn thiếu ở 2.0.
Lý thuyết: Classical control flow (if/else dựa trên kết quả đo - cần thiết cho fault tolerance, Giai đoạn 6), real-time computation, khai báo hàm (subroutine).
Thực hành: Viết 1 file OpenQASM 3.0 minh họa classical control flow (ví dụ: đo qubit 0, nếu kết quả=1 thì áp X lên qubit 1 - chính là cấu trúc dùng trong teleportation, Giai đoạn 2).
Ngày 916: Viết Mạch bằng OpenQASM Trực tiếp
Mục tiêu: Thực hành viết code assembly-level mà không qua Python API quen thuộc.
Lý thuyết: Không có thêm.
Thực hành: Viết lại toàn bộ mạch GHZ 4-qubit và mạch Deutsch-Jozsa (Giai đoạn 4) trực tiếp bằng OpenQASM.
Ngày 917: Quantum Intermediate Representation (QIR) - Động lực
Mục tiêu: Hiểu tại sao cần 1 tầng biểu diễn nữa ngoài OpenQASM.
Lý thuyết: QIR (do Microsoft dẫn đầu phát triển) hướng tới biểu diễn thống nhất cho cả tính toán cổ điển lẫn lượng tử trong 1 chương trình lai (hybrid), phù hợp hơn cho các thuật toán có logic điều khiển phức tạp (như Shor's algorithm, Giai đoạn 4).
Thực hành: Đọc tổng quan động lực ra đời QIR, ghi chú.
Ngày 918: QIR Dựa trên LLVM IR
Mục tiêu: Kết nối với kiến thức compiler cổ điển.
Lý thuyết: QIR xây trên nền LLVM IR (hạ tầng compiler cổ điển nổi tiếng, dùng bởi Clang/Rust/Swift...) với extension riêng cho phép toán lượng tử - tận dụng toàn bộ hệ sinh thái optimization pass đã có của LLVM.
Thực hành: Đọc tổng quan cấu trúc LLVM IR cổ điển (nếu chưa biết), ghi chú vì sao đây là lựa chọn nền tảng thông minh cho QIR.
Ngày 919: QIR - Cấu trúc Cơ bản
Mục tiêu: Làm quen cú pháp ở mức đọc hiểu (không cần viết tay thành thạo).
Lý thuyết: Qubit và kết quả đo được biểu diễn dưới dạng opaque pointer trong LLVM IR; gate lượng tử là các hàm gọi (function call) đặc biệt.
Thực hành: Đọc 1 ví dụ đoạn code QIR cho mạch Bell state, đối chiếu với OpenQASM tương ứng.
Ngày 920: So sánh OpenQASM vs QIR
Mục tiêu: Hiểu rõ vai trò khác nhau của 2 tầng biểu diễn.
Lý thuyết: OpenQASM: gần với circuit model, dễ đọc cho con người, phù hợp near-term algorithm; QIR: gần với compiler infrastructure, phù hợp chương trình lai phức tạp và tận dụng optimization pass có sẵn.
Thực hành: Lập bảng so sánh: mức độ trừu tượng, đối tượng sử dụng chính, hệ sinh thái công cụ hỗ trợ.
Ngày 921: Quantum Assembly Khác - Quil
Mục tiêu: Biết đến 1 chuẩn thay thế khác (Rigetti).
Lý thuyết: Quil - ngôn ngữ assembly của Rigetti, có cấu trúc tương tự OpenQASM nhưng cú pháp riêng.
Thực hành: Đọc tổng quan ngắn về Quil, so sánh sơ lược cú pháp với OpenQASM cho cùng 1 mạch đơn giản.
Ngày 922: Cross-Platform Compilation
Mục tiêu: Hiểu bài toán thực tế của ngành: nhiều chuẩn khác nhau (OpenQASM, Quil, Q# - Giai đoạn 8) cần tương tác được với nhau.
Lý thuyết: Vai trò của các chuẩn trung gian (QIR) và công cụ chuyển đổi qua lại giữa các định dạng.
Thực hành: Viết 1 đoạn giải thích tại sao thiếu chuẩn chung sẽ cản trở sự phát triển của ngành (liên hệ vấn đề tương tự "interoperability" đã gặp ở Giai đoạn 9, Ngày 848).
Ngày 923: Dự án nhỏ - Viết và Chạy 1 Mạch bằng OpenQASM Thuần túy
Mục tiêu: Tổng hợp phần đầu Phần A vào thực hành hoàn chỉnh.
Lý thuyết: Không có thêm.
Thực hành: Viết file
.qasmhoàn chỉnh cho Grover's algorithm (Giai đoạn 4, N=4), nạp vào Qiskit bằngQuantumCircuit.from_qasm_file(), chạy và xác nhận kết quả đúng.
Ngày 924: Ôn tập Tổng hợp Phần A
Mục tiêu: Kết nối OpenQASM → QIR → Quil → Cross-platform.
Lý thuyết: Vẽ sơ đồ tổng thể.
Thực hành: 8 bài tập tổng hợp.
Ngày 925: Kiểm tra kiến thức Phần A
Mục tiêu: Tự đánh giá trước khi sang Circuit Optimization.
Lý thuyết: Không có.
Thực hành: Bài test 12 câu bao quát Phần A.
PHẦN B - CIRCUIT OPTIMIZATION VÀ GATE DECOMPOSITION (Ngày 926–940)
Ngày 926: Động lực Circuit Optimization
Mục tiêu: Hiểu tại sao đây là bước bắt buộc trong thực tế (không chỉ lý thuyết đẹp).
Lý thuyết: Mỗi gate vật lý đều có lỗi (Giai đoạn 6); giảm số gate và depth trực tiếp giảm tích lũy lỗi - cực kỳ quan trọng trong kỷ nguyên NISQ (Giai đoạn 7, 10).
Thực hành: Tính xác suất thành công tổng thể của 1 circuit 50 gate và 20 gate (cùng fidelity mỗi gate = 99.9%), so sánh mức chênh lệch.
Ngày 927: Gate Cancellation
Mục tiêu: Học kỹ thuật tối ưu đơn giản nhất, đã gặp thoáng qua ở Giai đoạn 3 (Ngày 348).
Lý thuyết: Nhận diện cặp gate liên tiếp triệt tiêu nhau (H·H=I, X·X=I, CNOT·CNOT=I) và loại bỏ.
Thực hành: Viết thuật toán đơn giản (dạng giả mã) quét qua danh sách gate và loại bỏ các cặp liên tiếp giống hệt nhau trên cùng qubit.
Ngày 928: Gate Commutation Rules
Mục tiêu: Học khi nào có thể đổi thứ tự 2 gate mà không đổi kết quả (cần thiết để "đưa" các gate triệt tiêu lại gần nhau).
Lý thuyết: 2 gate trên các qubit khác nhau luôn commute; gate cùng qubit commute nếu và chỉ nếu ma trận của chúng commute (dùng lại commutator, Giai đoạn 1 Ngày 103).
Thực hành: Kiểm tra 3 cặp gate (ví dụ Rz và CNOT ở vị trí control) có commute được không, dựa trên tính toán ma trận.
Ngày 929: Gate Merging
Mục tiêu: Học kỹ thuật kết hợp nhiều gate 1-qubit liên tiếp thành 1 gate duy nhất.
Lý thuyết: Nhiều gate liên tiếp trên cùng 1 qubit luôn gộp được thành 1 gate unitary duy nhất (dùng lại gate composition, Giai đoạn 3 Ngày 303) - giảm số gate vật lý cần thực hiện.
Thực hành: Gộp chuỗi 3 gate Rz(θ1)-Rx(θ2)-Rz(θ3) thành 1 ma trận unitary duy nhất bằng tính toán.
Ngày 930: Peephole Optimization
Mục tiêu: Học chiến lược tổng quát áp dụng Gate Cancellation + Commutation + Merging cục bộ.
Lý thuyết: Quét qua circuit theo "cửa sổ" nhỏ (vài gate liên tiếp), áp dụng các quy tắc tối ưu cục bộ, lặp lại tới khi không còn cải thiện được (tương tự peephole optimization trong compiler cổ điển).
Thực hành: Áp dụng peephole optimization bằng tay cho 1 circuit mẫu 10 gate, ghi lại từng bước rút gọn.
Ngày 931: Template Matching
Mục tiêu: Học kỹ thuật tối ưu nâng cao hơn, tìm các pattern gate phức tạp hơn cặp đơn giản.
Lý thuyết: Xây thư viện các "template" (chuỗi gate tương đương 1 chuỗi khác ngắn hơn, ví dụ 3 CNOT = SWAP đã học Giai đoạn 3), quét circuit tìm pattern khớp và thay thế.
Thực hành: Áp dụng template SWAP=3×CNOT (Giai đoạn 3, Ngày 325) để rút gọn 1 đoạn circuit mẫu.
Ngày 932: Gate Decomposition - Ôn lại
Mục tiêu: Kết nối lại Giai đoạn 3 (Ngày 304, 327) trong bối cảnh compiler thực tế.
Lý thuyết: Compiler cần tự động phân rã gate cấp cao (như Toffoli) thành gate cơ bản mà hardware hỗ trợ (basis gate set - thường khác nhau tùy hãng, Giai đoạn 7).
Thực hành: Liệt kê basis gate set thực tế của 1 backend IBM cụ thể (thường {CX, ID, RZ, SX, X}), so sánh với gate set lý thuyết đã học ở Giai đoạn 3.
Ngày 933: Solovay-Kitaev Algorithm - Chi tiết
Mục tiêu: định lý đã giới thiệu sơ lược ở Giai đoạn 3 (Ngày 300).
Lý thuyết: Thuật toán đệ quy xấp xỉ 1 gate unitary bất kỳ bằng chuỗi gate từ {H,T} với độ chính xác ε, độ dài chuỗi ~O(log^c(1/ε)).
Thực hành: Đọc tổng quan cấu trúc đệ quy của thuật toán, ghi chú (không cần tự cài đặt đầy đủ - đây là thuật toán phức tạp thường dùng qua thư viện có sẵn).
Ngày 934: Euler Angle Decomposition cho Single-Qubit Gate
Mục tiêu: Học kỹ thuật phân rã chính xác (không xấp xỉ) cho gate 1-qubit, thực tế hơn Solovay-Kitaev cho trường hợp gate liên tục cho phép.
Lý thuyết: Mọi gate unitary 1-qubit U phân rã được chính xác thành U = e^(iα)Rz(β)Ry(γ)Rz(δ) (ZYZ decomposition).
Thực hành: Phân rã gate H thành dạng ZYZ, kiểm chứng lại bằng nhân ma trận.
Ngày 935: KAK Decomposition cho Two-Qubit Gate
Mục tiêu: Học kỹ thuật phân rã tổng quát cho gate 2-qubit bất kỳ (giới thiệu sơ lược).
Lý thuyết: Mọi gate unitary 2-qubit phân rã được thành tối đa 3 CNOT (hoặc gate 2-qubit cơ bản tương đương) cộng với các gate 1-qubit - đây là kết quả tối ưu đã được chứng minh.
Thực hành: Đọc tổng quan KAK decomposition, ghi chú kết quả chính (không cần tự chứng minh).
Ngày 936: Circuit Depth Reduction
Mục tiêu: Học kỹ thuật tối ưu song song hóa, khác với giảm số gate.
Lý thuyết: Sắp xếp lại gate (dùng commutation, Ngày 928) để tối đa hóa số gate thực hiện song song trong cùng 1 "lớp" (Moment, Giai đoạn 8 Ngày 758) - giảm depth dù số gate không đổi.
Thực hành: Với 1 circuit mẫu, tìm cách sắp xếp lại thứ tự gate (không đổi kết quả) để giảm depth từ 6 xuống 4.
Ngày 937: Cost Model
Mục tiêu: Học cách định lượng "circuit nào tốt hơn" một cách khách quan.
Lý thuyết: Cost model tổng hợp nhiều yếu tố: depth, gate count (đặc biệt gate 2-qubit vì thường có fidelity thấp hơn gate 1-qubit, Giai đoạn 7), ước tính fidelity tổng thể dựa trên fidelity từng gate.
Thực hành: Tính cost (theo công thức đơn giản: tổng -log(fidelity) từng gate) cho 2 phiên bản khác nhau của cùng 1 circuit, xác định phiên bản nào tốt hơn.
Ngày 938: Dự án - Cài đặt Optimizer Đơn giản
Mục tiêu: Tổng hợp toàn bộ Phần B vào code, dùng lại simulator/framework từ Giai đoạn 3 và 8.
Lý thuyết: Không có thêm.
Thực hành: Viết hàm
optimize_circuit(circuit)áp dụng gate cancellation + gate merging cho circuit tự viết, kiểm chứng circuit sau tối ưu tương đương circuit gốc (so sánh ma trận tổng hợp hoặc chạy trên nhiều input).
Ngày 939: Ôn tập Tổng hợp Phần B
Mục tiêu: Kết nối Gate Cancellation → Commutation → Merging → Template Matching → Decomposition → Cost Model.
Lý thuyết: Vẽ sơ đồ tổng thể pipeline optimization.
Thực hành: 10 bài tập tổng hợp.
Ngày 940: Kiểm tra kiến thức Phần B
Mục tiêu: Tự đánh giá trước khi sang Scheduling & Hardware Mapping.
Lý thuyết: Không có.
Thực hành: Bài test 15 câu bao quát Phần B.
PHẦN C - SCHEDULING VÀ HARDWARE MAPPING (Ngày 941–955)
Ngày 941: Qubit Mapping Problem - Động lực
Mục tiêu: Kết nối trực tiếp với Giai đoạn 7 (coupling map) và Giai đoạn 8 (Ngày 744).
Lý thuyết: Circuit logic thường giả định kết nối toàn phần (all-to-all, mọi qubit tương tác được với mọi qubit khác); hardware thật có kết nối giới hạn (nearest-neighbor cho superconducting) - cần "ánh xạ" circuit logic xuống ràng buộc vật lý.
Thực hành: Vẽ ví dụ: 1 circuit cần CNOT giữa qubit logic 0 và 3, nhưng hardware chỉ cho phép kết nối liền kề - minh họa vấn đề.
Ngày 942: Logical vs Physical Qubit
Mục tiêu: Phân biệt rõ 2 khái niệm dễ nhầm lẫn (khác với logical/physical qubit trong Giai đoạn 6 - đây là nghĩa khác, ở tầng compiler).
Lý thuyết: Logical qubit (ở đây): qubit trong circuit trừu tượng người dùng viết; Physical qubit: qubit vật lý cụ thể trên chip với vị trí và kết nối cố định.
Thực hành: Viết 1 đoạn phân biệt rõ ràng nghĩa "logical qubit" ở Giai đoạn 6 (Module 6.2–6.3, đơn vị được bảo vệ bởi QEC) khác với nghĩa ở đây (Ngày 942).
Ngày 943: Initial Placement
Mục tiêu: Học bước đầu tiên của qubit mapping - chọn ánh xạ ban đầu hợp lý.
Lý thuyết: Chọn ánh xạ ban đầu (qubit logic nào ↔ qubit vật lý nào) sao cho giảm thiểu số SWAP cần chèn thêm sau này; thường dùng heuristic dựa trên tần suất tương tác giữa các cặp qubit logic trong circuit.
Thực hành: Cho 1 circuit với ma trận tần suất tương tác giữa các qubit logic, đề xuất 1 ánh xạ ban đầu hợp lý lên coupling map hình vuông 2x2.
Ngày 944: SWAP Insertion
Mục tiêu: Học kỹ thuật chính giải quyết vấn đề kết nối không thỏa mãn.
Lý thuyết: Khi cần CNOT giữa 2 qubit vật lý không liền kề, chèn thêm chuỗi SWAP gate (Giai đoạn 3, Ngày 325) để "di chuyển" trạng thái qubit tới vị trí liền kề trước khi thực hiện CNOT.
Thực hành: Với ví dụ Ngày 941, viết chuỗi SWAP cần chèn để thực hiện CNOT(0,3) trên coupling map dạng đường thẳng (linear).
Ngày 945: SWAP Insertion - Thuật toán Tìm Đường đi Ngắn nhất
Mục tiêu: Kết nối trực tiếp với Graph Theory (Giai đoạn 0, Module 0.3).
Lý thuyết: Số SWAP tối thiểu cần thiết giữa 2 qubit vật lý = khoảng cách ngắn nhất (shortest path) giữa chúng trên đồ thị coupling map trừ 1; dùng BFS (đã học Giai đoạn 0, Ngày 60) để tính.
Thực hành: Dùng BFS tính khoảng cách ngắn nhất giữa mọi cặp đỉnh trên 1 coupling map grid 3x3 cho trước.
Ngày 946: Qubit Routing Algorithms - Tổng quan
Mục tiêu: Biết đến thuật toán thực tế dùng trong công nghiệp (không chỉ giải pháp ngây thơ).
Lý thuyết: SABRE (Sqrt-Approximation-Based Routing Engine) - thuật toán heuristic hiệu quả được Qiskit sử dụng mặc định, dùng lookahead và điểm số dựa trên nhu cầu tương lai của circuit.
Thực hành: Đọc tổng quan ý tưởng SABRE, ghi chú (không cần tự cài đặt đầy đủ - cực kỳ phức tạp cho hardware lớn).
Ngày 947: Scheduling
Mục tiêu: Học bước tiếp theo sau khi đã xác định gate nào chạy trên qubit vật lý nào.
Lý thuyết: Xác định thời điểm chính xác (trong đơn vị thời gian vật lý, liên hệ Giai đoạn 7) mỗi gate được thực thi, tôn trọng ràng buộc: 1 qubit không thể tham gia 2 gate cùng lúc.
Thực hành: Với 1 circuit đã mapping xong (5 gate, một số independent), vẽ lịch trình (schedule) thực thi tối ưu.
Ngày 948: Instruction Scheduling - Song song hóa
Mục tiêu: Áp dụng lại tư duy Depth Reduction (Ngày 936) ở tầng thực thi cụ thể trên hardware.
Lý thuyết: 2 gate không chung qubit và không phụ thuộc dữ liệu có thể chạy đồng thời trên hardware thật (nếu hardware hỗ trợ điều khiển song song).
Thực hành: Với circuit đã có schedule ở Ngày 947, xác định các gate nào có thể gộp vào cùng 1 "layer" thời gian.
Ngày 949: Layout Optimization - Toàn cục vs Cục bộ
Mục tiêu: Hiểu đánh đổi giữa tối ưu hóa cục bộ (nhanh, dễ cài đặt) và toàn cục (chậm hơn nhưng kết quả tốt hơn).
Lý thuyết: Global re-mapping (tìm lại toàn bộ ánh xạ tối ưu cho cả circuit) vs incremental local adjustment (chỉ điều chỉnh cục bộ khi cần) - SABRE (Ngày 946) là ví dụ cân bằng giữa 2 thái cực.
Thực hành: Viết 1 đoạn so sánh trade-off thời gian compile vs chất lượng circuit đầu ra giữa 2 chiến lược.
Ngày 950: Ảnh hưởng của Routing tới Fidelity Tổng thể
Mục tiêu: Định lượng hệ quả thực tế của qubit mapping kém.
Lý thuyết: Mỗi SWAP gate thêm vào tương đương 3 CNOT (Giai đoạn 3, Ngày 325) - mỗi CNOT có lỗi riêng (Giai đoạn 6, 7) - routing kém có thể làm tăng đáng kể lỗi tổng thể của circuit.
Thực hành: Tính fidelity tổng thể ước tính cho circuit với 0 SWAP, 5 SWAP, 20 SWAP (giả định fidelity CNOT = 99%), so sánh mức suy giảm.
Ngày 951: So sánh Routing trên Các Kiến trúc Hardware Khác nhau
Mục tiêu: Kết nối trực tiếp với Giai đoạn 7 - hiểu tại sao kiến trúc phần cứng ảnh hưởng trực tiếp tới độ khó bài toán compiler.
Lý thuyết: Superconducting (kết nối 2D hạn chế, Module 7.1) cần routing phức tạp; trapped ion (all-to-all, Module 7.2) hầu như không cần SWAP; neutral atom (kết nối linh hoạt qua sắp xếp lại, Module 7.4) có chiến lược routing riêng biệt.
Thực hành: Viết bảng so sánh độ phức tạp bài toán routing cho cả 4 kiến trúc hardware đã học ở Giai đoạn 7.
Ngày 952: Dự án - Cài đặt Thuật toán Routing Đơn giản
Mục tiêu: Tổng hợp lý thuyết Phần C vào thực hành.
Lý thuyết: Không có thêm.
Thực hành: Viết hàm Python
route_circuit(circuit, coupling_map)dùng chiến lược đơn giản (BFS + chèn SWAP theo shortest path) cho 1 circuit mẫu.
Ngày 953: Dự án - Test Routing trên Nhiều Loại Coupling Map
Mục tiêu: Kiểm chứng thuật toán trên các kịch bản khác nhau.
Lý thuyết: Không có thêm.
Thực hành: Chạy hàm
route_circuitđã viết cho cùng 1 circuit trên 3 coupling map khác nhau (linear, grid, all-to-all), so sánh số SWAP cần thêm.
Ngày 954: Ôn tập Tổng hợp Phần C
Mục tiêu: Kết nối Initial Placement → SWAP Insertion → Routing Algorithm → Scheduling → Fidelity Impact.
Lý thuyết: Vẽ sơ đồ tổng thể.
Thực hành: 10 bài tập tổng hợp.
Ngày 955: Kiểm tra kiến thức Phần C
Mục tiêu: Tự đánh giá trước khi sang Pulse-Level Control.
Lý thuyết: Không có.
Thực hành: Bài test 15 câu bao quát Phần C.
PHẦN D - PULSE-LEVEL CONTROL (Ngày 956–965)
Ngày 956: Giới thiệu Pulse-Level Control
Mục tiêu: Kết nối trực tiếp với Giai đoạn 7 (Ngày 644 - microwave pulse điều khiển transmon).
Lý thuyết: Gate ở mức circuit model (Giai đoạn 3) là trừu tượng hóa của chuỗi xung vật lý thực tế; pulse-level control cho phép lập trình trực tiếp ở tầng thấp nhất này, vượt qua giới hạn của gate rời rạc chuẩn.
Thực hành: Ôn lại Ngày 644, viết 1 đoạn giải thích mối quan hệ giữa "gate" (trừu tượng) và "pulse" (vật lý cụ thể).
Ngày 957: OpenPulse
Mục tiêu: Học ngôn ngữ mô tả pulse schedule chuẩn (tương tự vai trò OpenQASM ở tầng gate).
Lý thuyết: OpenPulse - phần mở rộng của hệ sinh thái OpenQASM cho phép mô tả xung ở mức thời gian liên tục.
Thực hành: Đọc tổng quan cấu trúc OpenPulse, ghi chú.
Ngày 958: Pulse - Các Thành phần Cơ bản
Mục tiêu: Thành thạo từ vựng kỹ thuật của tầng pulse.
Lý thuyết: Waveform (dạng sóng theo thời gian, ví dụ Gaussian pulse), frame (tần số và pha tham chiếu), phase (điều khiển pha xung).
Thực hành: Vẽ dạng sóng Gaussian pulse điển hình dùng cho gate 1-qubit, chú thích biên độ và độ rộng.
Ngày 959: Calibration
Mục tiêu: Hiểu bước hiệu chỉnh bắt buộc trước khi dùng pulse trên hardware thật.
Lý thuyết: Mỗi qubit vật lý có tần số cộng hưởng và anharmonicity riêng (Giai đoạn 7, Ngày 643) - cần hiệu chỉnh (calibrate) pulse riêng cho từng qubit, không dùng chung 1 pulse cho toàn chip.
Thực hành: Đọc tổng quan quy trình calibration (Rabi experiment để xác định biên độ pulse chính xác cho gate π), ghi chú.
Ngày 960: Pulse-Level Gate Implementation
Mục tiêu: Hiểu lợi ích thực tế của việc lập trình ở tầng này.
Lý thuyết: Thiết kế pulse tùy chỉnh (thay vì dùng pulse mặc định của gate chuẩn) có thể thực hiện 1 phép biến đổi mong muốn nhanh hơn hoặc chính xác hơn - đặc biệt hữu ích cho gate 2-qubit phức tạp.
Thực hành: Đọc 1 ví dụ về pulse-level gate optimization giảm thời gian gate so với cách tiếp cận chuẩn, ghi chú.
Ngày 961: Ứng dụng - Pulse-Level VQE
Mục tiêu: Kết nối trực tiếp với Giai đoạn 10 - thấy lợi ích thực tế cho thuật toán đã học.
Lý thuyết: 1 số nghiên cứu cho thấy thực hiện trực tiếp ansatz VQE ở mức pulse (thay vì biên dịch qua gate rồi xuống pulse) có thể giảm đáng kể thời gian thực thi circuit - quan trọng vì thời gian thực thi càng ngắn, ảnh hưởng của decoherence (Giai đoạn 6) càng ít.
Thực hành: Viết 1 đoạn giải thích liên hệ giữa pulse-level optimization và việc giảm ảnh hưởng T1/T2 (Giai đoạn 6, Ngày 549) lên kết quả VQE.
Ngày 962: Qiskit Pulse - Thực hành
Mục tiêu: Kết nối lại với Giai đoạn 8 (Ngày 749) bằng thực hành cụ thể hơn.
Lý thuyết: Không có thêm.
Thực hành: Viết 1 pulse schedule đơn giản bằng Qiskit Pulse API (hoặc phiên bản kế thừa hiện tại) cho 1 gate X, kiểm tra trên simulator pulse-level nếu khả dụng.
Ngày 963: Dự án nhỏ - Viết 1 Pulse Schedule cho Gate X
Mục tiêu: Củng cố thực hành Ngày 962.
Lý thuyết: Không có thêm.
Thực hành: Hoàn thiện và kiểm chứng pulse schedule cho gate X đạt hiệu ứng tương đương gate X ở mức circuit (so sánh state vector kết quả).
Ngày 964: Ôn tập Tổng hợp Phần D
Mục tiêu: Kết nối OpenPulse → Waveform → Calibration → Pulse-level Optimization.
Lý thuyết: Vẽ sơ đồ tổng thể.
Thực hành: 6 bài tập tổng hợp.
Ngày 965: Kiểm tra kiến thức Phần D
Mục tiêu: Tự đánh giá trước khi bước vào dự án lớn cuối giai đoạn.
Lý thuyết: Không có.
Thực hành: Bài test 10 câu bao quát Phần D.
DỰ ÁN LỚN - MINI QUANTUM COMPILER (Ngày 966–980)
Ngày 966: Thiết kế Kiến trúc Mini Compiler
Mục tiêu: Tổng hợp toàn bộ Giai đoạn 11 vào 1 dự án hoàn chỉnh, dùng lại framework tự xây ở Giai đoạn 8 (Ngày 801–810).
Lý thuyết: Không có.
Thực hành: Thiết kế trên giấy pipeline đầy đủ: Parser (OpenQASM → IR) → Optimization passes (Phần B) → Mapping/Routing (Phần C) → Scheduling → Output.
Ngày 967: Cài đặt Parser cho OpenQASM Đơn giản hóa
Mục tiêu: Xây tầng đầu tiên của compiler.
Lý thuyết: Không có thêm.
Thực hành: Viết parser Python đọc file
.qasmđơn giản hóa (chỉ hỗ trợ tập gate cơ bản đã học ở Giai đoạn 3), chuyển thành danh sách gate nội bộ.
Ngày 968: Cài đặt Intermediate Representation (IR)
Mục tiêu: Thiết kế cấu trúc dữ liệu trung gian cho các optimization pass thao tác.
Lý thuyết: Không có thêm.
Thực hành: Thiết kế class
CircuitIRlưu trữ danh sách gate dưới dạng dễ thao tác (thêm/xóa/duyệt), khác với representation dùng để chạy simulator ở Giai đoạn 3.
Ngày 969: Cài đặt Gate Cancellation Pass
Mục tiêu: Hiện thực hóa kỹ thuật Ngày 927.
Lý thuyết: Không có thêm.
Thực hành: Viết pass quét
CircuitIR, loại bỏ cặp gate tự triệt tiêu liên tiếp trên cùng qubit.
Ngày 970: Cài đặt Gate Merging Pass
Mục tiêu: Hiện thực hóa kỹ thuật Ngày 929.
Lý thuyết: Không có thêm.
Thực hành: Viết pass gộp chuỗi gate 1-qubit liên tiếp thành 1 gate ma trận duy nhất.
Ngày 971: Cài đặt Decomposition Pass
Mục tiêu: Hiện thực hóa kỹ thuật Ngày 932, 934.
Lý thuyết: Không có thêm.
Thực hành: Viết pass phân rã gate không thuộc basis gate set mục tiêu (ví dụ Toffoli) thành chuỗi gate cơ bản (dùng lại phân rã đã học ở Giai đoạn 3, Ngày 327).
Ngày 972: Cài đặt Qubit Mapping Pass - Initial Placement
Mục tiêu: Hiện thực hóa kỹ thuật Ngày 943.
Lý thuyết: Không có thêm.
Thực hành: Viết hàm chọn ánh xạ ban đầu đơn giản (ví dụ ánh xạ trực tiếp theo thứ tự) cho 1 coupling map cho trước.
Ngày 973: Cài đặt SWAP Insertion Pass
Mục tiêu: Hiện thực hóa kỹ thuật Ngày 944–945, dùng lại code Ngày 952.
Lý thuyết: Không có thêm.
Thực hành: Tích hợp hàm
route_circuitđã viết ở Ngày 952 vào compiler pipeline.
Ngày 974: Cài đặt Scheduling Pass
Mục tiêu: Hiện thực hóa kỹ thuật Ngày 947–948.
Lý thuyết: Không có thêm.
Thực hành: Viết pass gán thời gian thực thi cho từng gate, gộp các gate độc lập vào cùng layer khi có thể.
Ngày 975: Tích hợp Toàn bộ Pipeline Compiler
Mục tiêu: Ghép nối tất cả các pass đã viết thành 1 compiler hoàn chỉnh.
Lý thuyết: Không có thêm.
Thực hành: Viết hàm
compile(qasm_file, coupling_map, basis_gates) -> scheduled_circuitgọi tuần tự toàn bộ pipeline.
Ngày 976: Test Compiler với Bell State, GHZ State
Mục tiêu: Kiểm chứng bằng các mạch đơn giản đã quen thuộc.
Lý thuyết: Không có thêm.
Thực hành: Compile mạch Bell state và GHZ state qua pipeline tự viết, xác nhận circuit sau compile vẫn tương đương circuit gốc (chạy simulator so sánh kết quả).
Ngày 977: Test Compiler với Grover's Algorithm
Mục tiêu: Kiểm chứng bằng mạch phức tạp hơn (từ Giai đoạn 4).
Lý thuyết: Không có thêm.
Thực hành: Compile mạch Grover's algorithm (N=8) qua pipeline tự viết trên 1 coupling map hạn chế (ví dụ linear), xác nhận kết quả đúng sau compile.
Ngày 978: Benchmark - So sánh với Qiskit Transpiler
Mục tiêu: Đánh giá khách quan chất lượng compiler tự viết so với công cụ công nghiệp.
Lý thuyết: Không có thêm.
Thực hành: So sánh số gate, depth, số SWAP giữa compiler tự viết và Qiskit transpiler (Giai đoạn 8, Ngày 743) cho cùng 1 circuit và coupling map.
Ngày 979: Viết Documentation cho Mini Compiler
Mục tiêu: Hoàn thiện dự án với tài liệu kỹ thuật rõ ràng.
Lý thuyết: Không có.
Thực hành: Viết README.md mô tả kiến trúc pipeline, từng pass, cách sử dụng, và kết quả benchmark Ngày 978.
Ngày 980: Tổng kết Giai đoạn 11
Mục tiêu: Xác nhận sẵn sàng chuyển sang Giai đoạn 12 (Research Frontier) - giai đoạn cuối cùng trước Capstone.
Lý thuyết: Ôn lại toàn bộ Giai đoạn 11: IR/Assembly → Optimization → Mapping/Routing → Pulse-level → Mini Compiler; nhấn mạnh đây là kiến thức "hạ tầng" ít được nhắc tới nhưng quyết định trực tiếp hiệu năng thực tế của mọi thuật toán đã học từ Giai đoạn 4 đến 10.
Thực hành: Bài kiểm tra tổng hợp 30 câu bao quát cả Giai đoạn 11; đảm bảo mini compiler đã hoạt động đúng cho ít nhất 3 loại mạch khác nhau trước khi coi giai đoạn hoàn thành.