Mở đầu: một nhánh riêng, không nối tiếp 11 bài trước
11 bài trước xây dựng dần MỘT cỗ máy cổ điển hoàn chỉnh — từ cổng logic (Bài 1) tới đóng gói chiplet hiện đại (Bài 11). Bài này là một NHÁNH RIÊNG, một "chân trời" mở rộng — máy tính lượng tử KHÔNG xây trên nền tảng bit nhị phân của 11 bài trước, mà dùng một mô hình toán học HOÀN TOÀN khác: cơ học lượng tử. Đây không phải bài capstone tổng hợp kiến thức cũ, mà là lời giới thiệu tới một hướng đi khác của kiến trúc máy tính.
1. Bit cổ điển vs Qubit lượng tử
Bit cổ điển (xuyên suốt Bài 1-11) LUÔN ở đúng MỘT trong hai trạng thái: 0 hoặc 1. Qubit lượng tử có thể ở trạng thái chồng chập (superposition) — đồng thời "một phần" 0 VÀ "một phần" 1, biểu diễn bằng vector trạng thái:
$$|\psi\rangle = \alpha|0\rangle + \beta|1\rangle \qquad\qquad |\alpha|^2 + |\beta|^2 = 1$$
$\alpha$, $\beta$ là biên độ (amplitude) — SỐ PHỨC, không phải xác suất trực tiếp. Xác suất đo được trạng thái $|0\rangle$ là $|\alpha|^2$, đo được $|1\rangle$ là $|\beta|^2$ (định đề Born) — ràng buộc $|\alpha|^2+|\beta|^2=1$ đảm bảo tổng xác suất luôn bằng 1, y hệt mọi phân bố xác suất hợp lệ.
function cx(re, im = 0) { return { re, im }; } // so phuc toi gian
function makeZeroState(numQubits) {
const size = Math.pow(2, numQubits);
const state = new Array(size).fill(null).map(() => cx(0, 0));
state[0] = cx(1, 0); // khoi tao luon o |00...0>, bien do 1
return state;
}
function cAbs2(a) { return a.re * a.re + a.im * a.im; } // |alpha|^2 = xac suat
// Verified: makeZeroState(1) -> P(0)=1, P(1)=0 (chua ap dung cong nao)
2. Hiện tượng vướng víu lượng tử & Cổng logic lượng tử
Vướng víu lượng tử (entanglement): 2 qubit có thể liên kết với nhau sao cho đo MỘT qubit LẬP TỨC quyết định luôn kết quả đo của qubit KIA — dù chúng ở đâu — mà KHÔNG mô tả được bằng cách coi mỗi qubit là độc lập. Cổng lượng tử biến đổi trạng thái theo phép toán tuyến tính (ma trận unita): Hadamard (H) tạo chồng chập đều từ trạng thái cơ bản; CNOT (2-qubit) lật qubit đích NẾU qubit điều khiển là $|1\rangle$ — kết hợp H + CNOT chính là công thức kinh điển tạo vướng víu (mạch Bell); Pauli X/Y/Z tương ứng 3 phép quay 180° quanh 3 trục của quả cầu Bloch (biểu diễn hình học trạng thái 1 qubit).
H (Hadamard): X (Pauli, "NOT"): Z (Pauli, dao pha):
1/sqrt2 * [1 1] [0 1] [1 0]
[1 -1] [1 0] [0 -1]
CNOT (2-qubit, dieu khien=q0, dich=q1):
|00> -> |00> |01> -> |01> |10> -> |11> |11> -> |10>
(CHI lat q1 KHI q0 = 1 - day la nguon goc tao vuong viu khi ket hop voi H)
// Mach Bell kinh dien: H tren qubit 0, roi CNOT(dieu khien=0, dich=1)
let state = makeZeroState(2); // |00>
state = applySingleQubitGate(state, GATE_H, 0, 2); // (|00> + |10>)/sqrt2
state = applyCNOT(state, 0, 1, 2); // (|00> + |11>)/sqrt2 - VUONG VIU!
const probs = measureProbabilities(state);
// Verified: probs = [0.5, 0, 0, 0.5] tuong ung [P(00), P(01), P(10), P(11)]
// Chi 2/4 trang thai co the do duoc - 2 qubit gio LIEN KET voi nhau
3. Thuật toán lượng tử & Ứng dụng
Thuật toán Shor phân tích thừa số nguyên tố một số lớn nhanh hơn HÀM MŨ so với thuật toán cổ điển tốt nhất đã biết — đe doạ trực tiếp mật mã RSA (dựa trên độ khó phân tích thừa số). Thuật toán Grover tìm kiếm trong danh sách không có cấu trúc nhanh hơn BÌNH PHƯƠNG (quadratic speedup) so với dò tuần tự — hữu ích cho tối ưu hoá và một số bài toán tìm kiếm tổng quát.
4. Bài toán tính toán xác suất đầu ra mạch lượng tử
Verified thật bằng engine (module quantum-sim.js riêng biệt, KHÔNG dùng chung
cpu-core.js vì mô hình toán học hoàn toàn khác): cổng Hadamard trên $|0\rangle$ cho đúng
$P(0)=P(1)=50\%$ (chồng chập đều). Mạch Bell (H trên qubit 0, rồi CNOT điều khiển=0/đích=1) trên
$|00\rangle$ tạo VƯỚNG VÍU THẬT SỰ:
$$P(00) = 0,5 \qquad P(01) = 0 \qquad P(10) = 0 \qquad P(11) = 0,5$$
Chỉ 2 trong 4 trạng thái có thể đo được — $|01\rangle$ và $|10\rangle$ có xác suất 0% TUYỆT ĐỐI, không phải "rất nhỏ". Đây chính là dấu hiệu toán học của vướng víu: đo qubit đầu tiên ra 0 thì qubit thứ hai CHẮC CHẮN cũng là 0 (và tương tự với 1) — 2 kết quả đo LUÔN khớp nhau, dù không có "tín hiệu" nào truyền giữa 2 qubit tại thời điểm đo.
function measureProbabilities(state) {
return state.map((amplitude) => amplitude.re ** 2 + amplitude.im ** 2); // |alpha|^2
}
// Verified: H|0> -> probs = [0.5, 0.5] (chong chap deu 1 qubit)
// Verified: mach Bell -> probs = [0.5, 0, 0, 0.5] (vuong viu 2 qubit)
// Tong luon = 1 (bao toan xac suat, dinh de Born)
5. Thực hành: Trình giả lập mạch lượng tử 2-qubit
Bấm các cổng để xây mạch lượng tử của riêng bạn trên 2 qubit — quan sát biên độ và xác suất đo được thay đổi trực tiếp. Thử nút "Mạch Bell" để xem vướng víu lượng tử THẬT xuất hiện ngay lập tức:
Tóm lược
- ✅ Qubit chồng chập $|\psi\rangle=\alpha|0\rangle+\beta|1\rangle$, $|\alpha|^2+|\beta|^2=1$ — nhưng chồng chập KHÔNG tự động tăng tốc mọi loại tính toán.
- ✅ Verified: mạch Bell (H + CNOT) tạo vướng víu lượng tử thật — P(00)=P(11)=50%, P(01)=P(10)=0% tuyệt đối.
- ✅ Pitfall: decoherence (nhiễu môi trường) phá huỷ trạng thái lượng tử NGOÀI Ý MUỐN, trước cả khi đo chủ động.
- ✅ Shor/Grover chứng minh lợi thế toán học — nhưng NISQ hiện tại chưa đủ qubit sạch để chạy thực tế.
- ✅ Pitfall: hành động đo làm sụp đổ chồng chập VĨNH VIỄN, không thể khôi phục bằng đo lại.
Trắc nghiệm ôn tập
Câu 1
Vì sao chạy trình duyệt web hay game thông thường trên máy tính lượng tử KHÔNG nhanh hơn CPU cổ điển?
Câu 2
Verified: mạch Bell cho P(00)=50%, P(11)=50%, P(01)=P(10)=0% TUYỆT ĐỐI. Điều gì chứng tỏ đây THẬT SỰ là vướng víu lượng tử (entanglement), không phải ngẫu nhiên độc lập?
Câu 3
Decoherence là gì, và vì sao nó là thách thức lớn cho máy tính lượng tử thật?
Câu 4
Tại sao "thuật toán Shor có thể phá RSA" không đồng nghĩa "RSA đã bị phá vào lúc này"?
Tải file code thực hành minh họa bài học
File JavaScript quantum-sim.js — module RIÊNG BIỆT (không dùng chung
cpu-core.js) cho toàn bộ tính toán lượng tử: vector trạng thái phức, cổng
Hadamard/CNOT/Pauli X-Y-Z, đo lường theo định đề Born, kèm self-test đối chiếu đúng mọi con số trong bài
(chạy node quantum-sim.js, không cần cài thêm gì):
📖 Tài liệu tham khảo
- Sách giáo khoa cốt lõi: Nielsen & Chuang — Quantum Computation and Quantum Information — sách giáo khoa kinh điển và toàn diện nhất về tính toán lượng tử.
- Thuật toán Shor: Wikipedia — Shor's algorithm — chi tiết thuật toán phân tích thừa số nguyên tố và tác động tới mật mã RSA.
- Vướng víu lượng tử & mạch Bell: Wikipedia — Quantum entanglement — nền tảng lý thuyết và thí nghiệm kiểm chứng vướng víu lượng tử.