1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp An toàn thông tin: Tự động hóa quy trình phát triển ứng dụng lượng tử theo mô hình Serverless

114 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tự động hóa quy trình phát triển ứng dụng lượng tử theo mô hình Serverless
Tác giả Pham Ngoc Tam, Doan Thanh Phuong
Người hướng dẫn TS. Pham Van Hau
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành An Toan Thong Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 114
Dung lượng 46,61 MB

Nội dung

Tuy nhiên việc phát triểnứng dụng lượng tử vẫn còn đối mặt với các thách thức: 1 các máy tínhlượng tử hiện nay còn hạn chế về số lượng qubit và kết quả xử lí chưa ổn định; 2 các ứng dụng

Trang 1

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG

PHAM NGOC TAM DOAN THANH PHUONG

KHOA LUAN TOT NGHIEP

TU DONG HOA QUY TRINH PHAT TRIEN

UNG DỤNG LUONG TU THEO MÔ HÌNH SERVERLESS

Automating the Serverless-based Quantum Software

Development Cycle

KY SU NGANH AN TOAN THONG TIN

TP HO CHi MINH, 2022

Trang 2

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG

PHẠM NGỌC TÂM - 18521371

ĐOÀN THANH PHƯƠNG - 18521267

KHÓA LUẬN TÓT NGHIỆP

TỰ ĐỌNG HÓA QUY TRÌNH PHAT TRIEN

UNG DỤNG LƯỢNG TU THEO MÔ HÌNH SERVERLESS

Automating the Serverless-based Quantum Software

Development Cycle

KY SU NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS PHAM VAN HAU

TP HO CHi MINH, 2022

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, nhóm tác giả xin gửi lời cảm ơn đến trường Đại học Côngnghệ thông tin - Đại học Quốc gia Thành phó Hồ Chi Minh, ban Chủnhiệm khoa Mang máy tinh và Truyền thông và thầy Lê Đức Thịnh là cốvan học tập đã tạo điều kiện để nhóm tác giả thực hiện khoá luận tốt nghiệp

này.

Nhóm tác giả gửi lời cảm ơn đặc biệt dén TS Phạm Văn Hậu đã nhậnlời hướng dẫn nhóm chúng em Thay luôn quan tâm, tận tình giúp đỡ vàgiải đáp thắc mắc cho nhóm chúng em bằng những lời khuyên, những gợi

ý về hướng phát triển của đề tài để nhóm chúng em hoàn thành đề tài mộtcách hoàn thiện nhất Bên cạnh đó, nhóm chúng em cũng xin gửi lời cảm

ơn đến ThS Nguyễn Thanh Hòa, thầy đã cho chúng em hướng đi và theo

sát nhóm chúng em trong lúc thực hiện đề tài Nhóm chúng em cũng xingửi lời cảm ơn chân thành đến các giảng viên trong trường Đại học Công

nghệ Thông tin, các giảng viên khoa Mạng máy tính và Truyén thông đã

dạy cho chúng em nhiều kiến thức và giúp cho chúng em trưởng thànhhơn trong cuộc sống Trong quá trình thực hiện khoá luận khó tránh khỏinhững thiếu sót, mong thầy cô tiếp tục góp ý để chúng em hoàn thành tốt

hơn nữa, không chỉ trong khoá luận tốt nghiệp này mà còn trong cuộc sống

và công việc sắp tới Đây là hành trang quý báu giúp chúng em tiếp tụcvững bước trên con đường tiến tới thành công của sự nghiệp sau này

Nhóm tác giả gửi lời cảm ơn đến gia đình, người thân, bạn bè và tập thể

lớp An toàn tài năng 2018 đã luôn đã giúp đố trong những lúc khó khăn

cho chúng em trong suốt quãng đường đại học

Trang 4

Nhóm tác giả xin chân thành cam on!

Thành phố Hồ Chi Minh, tháng 7 năm 2022

Nhóm sinh viên

Trang 5

TÓM TẮT

Tính toán lượng tử gần đây đã có nhiều bước đột phá về phần cứng, phầnmềm và thuật toán Tính toán lượng tử có thể rút ngắn thời gian xử lí hơnrất nhiều lần so với máy tính truyền thống, một số bài toán để chứng minhnhư là bài toán phân tích thừa số nguyên tố Shor, thuật toán tìm tính chấthàm Deutsch-Jozsa, thuật toán tìm kiếm Grover Tuy nhiên việc phát triểnứng dụng lượng tử vẫn còn đối mặt với các thách thức: (1) các máy tínhlượng tử hiện nay còn hạn chế về số lượng qubit và kết quả xử lí chưa ổn

định; (2) các ứng dụng lượng tử chưa thể tích hợp dần vào các hệ thống

hiện tại bởi vì tốn khá nhiều chỉ phí và nhân lực; (3) các kiến thức về lập

trình lượng tử còn mới với các kỹ sư lập trình để phát triển các ứng dụng

lượng tử Trong Khóa luận tốt nghiệp này, nhóm tác giả triển khai hệ thống

tự động hóa quy trình phát triển ứng dụng lượng tử theo mô hình serverless

computing Đầu tiên, nhóm tác giả nghiên cứu và tóm tắt các lý thuyết cơbản về lượng tử và các kỹ thuật lập trình ứng dụng lượng tử trên các SDKs

và ngôn ngữ mã nguồn mở như Qiskit, Cirq và Q# Tiếp theo, nhóm tác

giả triển khai mô hình serverless bằng máy chủ Kubernetes và OpenFaaS

để có thể triển khai các ứng dụng lượng tử Sau đó nhóm tác giả xây dựnggiao diện hỗ trợ người dùng tiếp cận và sử dụng thông qua hệ thống Cuốicùng, nhóm tác giả triển khai một số thực nghiệm để đánh giá hiệu suất

hệ thống cũng như các ứng dụng lượng tử trên nhiều yếu tố như số lượngngười dùng và số lượng qubit Kết quả các thực nghiệm cho thấy hệ thống

đảm bảo được các chức năng hỗ trợ xây dựng và triển khai các ứng dụng

lượng tử tự động tận dụng DevOps (CI/CD) qua API và giao diện người

dùng Các ứng dụng lượng tử cho hiệu suất khác nhau tùy thuộc vào SDKs

Trang 6

và ngôn ngữ sử dụng, số lượng qubit, số lượng người dùng và môi trường

thực thi.

Trang 7

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

DE CƯƠNG CHI TIẾT

Cán bộ hướng dẫn: TS Pham Văn Hậu

Thời gian thực hiện: Từ ngày 21/02 đến ngày 11/06/2022

Sinh viên thực hiện:

Phạm Ngọc Tâm — 18521371 - 0795541213

Doan Thanh Phương — 18521267 - 0944022034

Nội dung đề tài:

1 Giới thiệu tổng quan

Những bước đột phá cả về phần cứng và phần mềm trong máy tính lượng tử (Quantum computer) hiện nay đang là lĩnh vực nhiều hứa hẹn cho việc áp dụng vào

vấn đề thực tế, bởi vì công nghệ lượng tử có thể giải quyết nhiều bài toán truyền thống

nhanh chóng hơn [1-2] Về phần cứng, đến hiện tại nhà cung cấp dich vụ điện toán đám

mây IBM đã cho ra mắt máy tính lượng tử với 127 qubits giúp tăng khả năng tính toán

rất lớn Về mặt phần mềm, hiện tại các thư viện lập trình lượng tử mã nguồn mở dựa

trên các SDK như Qiskit (IBM)', Cirq (Google)? đã ra đời và có thé giúp con người

viết những ứng dụng lượng tử trên máy tính cổ điền, sau đó chạy trên các máy tính

lượng tử vật lý cung cấp bởi các dịch vụ điện toán đám mây như IBM Quantum, Azure.

1 https://qiskit.org/

? https://quantumai.google/cirq

Trang 8

Tuy nhiên, việc phát triển các dich vụ điện toán lượng tử vẫn còn đối mặt với nhiều

thách thức [3-4]:

© Các máy tính lượng tử hiện nay vẫn còn hạn chế về số lượng qubits (quantum

bits) ở mức thấp và trung bình, kết quả xử lý chưa ồn định hay được biết đến làvấn đề NISQ (near-term-intermediate-scale quantum)

e Phat trién ứng dung lượng tử là một lĩnh vực còn rất mới, tạo ra nhiều thách thức

đối với những kỹ sư phát triển phần mềm truyền thống

© Cac ứng dụng trên máy tính truyền thống hiện nay rat phổ biến, việc thay thế hoàn

toàn bằng công nghệ lượng tử sẽ gây ra những quyết định khó khăn cho doanh

nghiệp.

Song song đó, một giải pháp tiềm năng có thê giải quyết các thách thức trên là áp dụng

mô hình Serverless computing (mô hình điện toán “không máy chủ”) FaaS

(Function-as-a-Service) là một mô hình điện toán phổ biến trong Serverless, cung cấp các dịch

vụ theo dạng các Function Người dùng chỉ cần đưa vào các tham số hệ thống sẽ trả

về kết quả, do đó người dùng không cần quan tâm đến việc tự thiết kế và bảo trì hệthống, chi phí sẽ được tính trên yêu cầu người dùng [5]

Do đó nhóm tác giả đề xuất triển khai hệ thống hỗ trợ tự động hoá quy trình pháttriển phần mềm lượng tử theo mô hình Serverless tận dụng được những khả năng củaServerless computing như tối ưu hóa phân bồ tài nguyên, khả năng mở rộng áp dụngvào vận hành các chương trình lượng tử trên điện toán đám mây, triển khai các phầnmềm lượng tử theo mô hình FaaS Hệ thống cung cấp một framework hỗ trợ các lậptrình viên phát triển phần mềm lượng tử nhanh chóng, tự động mà không cần quan tâmđến việc cài đặt máy chủ và các dịch vụ cần thiết Đồng thời hệ thống cũng cung cấpdịch vụ lượng tử giúp người dùng dễ dàng tiếp cận và sử dụng các ứng dụng lượng tử

Trang 9

2 Mục tiêu nghiên cứu

e _ Nghiên cứu về các kỹ thuật lập trình, lý thuyết cơ bản về lượng tử và các thư

viện mã nguồn mở hỗ trợ lập trình ứng dụng lượng tử

e _ Nghiên cứu và xây dựng hệ thông dựa trên mô hình Serverless hỗ trợ phát triển

các phần mềm lượng tử

© anh giá hiệu quả, chức năng của hệ thống và chứng minh khả năng ứng dụng

thực tế của đề tài trong việc phát triển phần mềm lượng tử

3 Đối tượng và phạm vi nghiên cứu

© Ly thuyết cơ bản, các kỹ thuật lập trình phần mềm lượng tử

¢ Cac framework triển khai mô hình Serverless cloud computing

e Nghién cứu sử dung các dịch vụ máy tính lượng tử của các nhà cung cấp (như

IBM Quantum, Azure Quantum va Amazon Braket).

© _ Các kỹ thuật, giải pháp phát triển phần mềm truyền thống cho phát triển phan

mềm lượng tử.

4 Nội dung chỉ tiết và phương pháp thực hiện

4.1 Nghiên cứu về các kỹ thuật lập trình, lý thuyết cơ bản về lượng tử và

các thư viện mã nguồn mở hỗ trợ lập trình ứng dụng lượng tử

© = Mục tiêu: Nam được kiến thức, thực trạng, lý thuyết cơ bản về lượng tử

và sử dụng các thư viện mã nguồn mở hỗ trợ lập trình ứng dụng lượng

tử (như Qiskit, Cirq, Q#).

e Phuong pháp: Nghiên cứu các tài liệu, bài báo khoa học, các nghiên cứu

liên quan.

4.2 Nghiên cứu áp dung mô hình Serverless cloud computing vào triển khai

ứng dụng lượng tử

© = Mục tiêu: Lựa chon framework hỗ trợ triển khai mô hình Serverless trên

các máy chủ tự quản (OpenFaaS, OpenWhisk) và triển khai cơ bản một

số các ứng dụng lượng tử đảm bảo tính én định, tính mở rộng, tính sẵn

sàng.

Trang 10

4.4.

Phương pháp: Đọc các tài liệu chính thức từ nhà phát triển của

framework Tham khảo tài liệu, mô hình của các nghiên cứu đã được

triển khai trước đó Triển khai thực nghiệm hệ thống.

Xây dựng hệ thống dựa trên mô hình Serverless hỗ trợ phát triển cácphần mềm lượng tử

Mục tiêu: Lập trình các chức năng quản lí, hỗ trợ tự động triển khai phầnmềm lượng tử

Phương pháp: Áp dụng các công nghệ, kỹ thuật trong việc phát triểnphần mềm truyền thống như quản lí phiên bản mã nguồn, đóng gói ứng

dụng container, tự động hóa quy trình (DevOps).

Đánh giá hiệu quả, chức năng của hệ thống đã triển khai

Mục tiêu: Đánh giá hiệu quả, hiệu suất và phân tích các chức năng của

hệ thống trên nhiều ngữ cảnh và chứng minh khả năng ứng dụng thực tếcủa đề tài trong việc phát triển phần mềm lượng tử

Thời gian Nội dung công việc

3/1—31/1/2022_ | Tìm hiểu, lựa chọn dé tài và xây dựng dé cương chỉ tiết

1/2 - 28/2/2022

Nghiên cứu về phát triển ứng dụng lượng tử, lý thuyết về

lượng tử

Tìm hiểu, phân tích các nghiên cứu liên quan và xây dựng báo

cáo tổng quan tình hình nghiên cứu

Trang 11

Tim hiểu và thiết kế mô hình sơ bộ các thành phan can thiết

Hoàn thiện các chức năng quản lí ứng dụng lượng tử trên hệ

1⁄4—30/4/2022 | thông

Kiểm thử và tối ưu hóa các chức năng của hệ thống

Đánh giá kết quả và đưa ra kết luận về tính ứng dụng của hệ

15 — 31/5/2022 thống đã triển khai trong việc phát triển các ứng dung lượng tử

Tổng hợp kết quả và số liệu thực nghiệm và viết báo cáo khoá

Trang 12

[4] J Garcia-Alonso, J Rojo, D Valencia, E Moguel, J Berrocal, and J M Murillo,

“Quantum Software as a Service Through a Quantum API Gateway,” IEEE Internet

Comput., vol 26, no 1, pp 34-41, 2022, doi: 10.1109/MIC.2021.3132688.

[5] S Eismann et al., “Serverless Applications: Why, When, and How?,” IEEE Softw.,

vol 38, no 1, pp 32-39, 2021, doi: 10.1109/MS.2020.3023302.

Xác nhận của CBHD TP HCM, ngày tháng năm

Sinh viên 1 Sinh viên 2

TS Phạm Văn Hậu Phạm Ngọc Tâm Đoàn Thanh Phương

Trang 13

Mục lục

Mục lục xi

Danh sách hình vẽ xiv

Danh mục từ viết tắt xviii

1 MỞĐẦU 1

11 Giớithệu Q0 eee 1

12 Mục tiêu nghincứu 2

1.3 Đối tượng nghiên cứu và phạm vi nghiêncứu 2

1.4 Cấu trúc Khóa luậntốtnghệp - 3

2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIEN QUAN 4 2.1 Tính toán lượng tử (Quantum computing) 4

2.1.1 Bit và tính toán truyền thống (classical computing) 4

2.1.2 Cosétofnhoc 2.2.02 sa 5 2.1.3 Qubit và tính toán lượng tử (quantum comuting) 6

2.1.4 Một số cổng lượngtỬ 9

2.1.5 Mạch lượng tử (Quantum circuis) 13

2.1.6 Các thuật toán lượng tử phổbiến 14

2.1.7 Thách thức hiện tại của tính toán lượngtử 20

2.2 Phát triển ứng dụng lượngtử 21

2.2.1 Các SDKs và ngôn ngữ lập trình lượng tử phổbiến 21

2.2.2 Cac ứng dụng truyền thống kết hợp lượng tử 23

xi

Trang 14

2.2.3 Quy trình phát triển ứng dụng lượngtửỬ 24

2.3 Mô hình tính toán lượng tử không máy chủ 26

2.3.1 Mô hình điện toán không máy chủ 26

2.3.2 Các nền tảng điện toán không máy chủ phổbiến 27

2.3.3 Ứng dụng mô hình điện toán không máy chủ cho phát triển ứng dụng lượngtỬ 29

2.4 Các nền tảng công nghệ liên quan - 30

2.4.1 Docker va Kubernetes - 30

24.2 Gitlab aaa ad 32 2.4.3 ReactlS 2 ee 33 2.4.4 FastAPl g7: cp 34

2.5 Các nghiên cứu lên quan 34

PHAN TÍCH THIẾT KẾ HỆ THONG 37 3.1 Phân tích các yêu cầu phát triển hệthống - 37

3.2 Mô hình kiến trúc hệthống - 38

3.3 Các thành phần chính của hệ thống 39

3.4 Mô hình luồng dữ liệu 4I 3.4.1 Nhóm phát triển ứng dụng lượngtử 41

3.4.2 Người dùngcuối Ặ QC 43 XÂY DUNG VÀ TRIỂN KHAI HỆ THONG 44 41 Xây dựng BackendAPI 44

4.2 Xây dựng giao diện người dùng (UI) 46

4.3 Tích hợp xác thực bảo mật và phân quyền người dùng 47

44 Tíchhợp đóng góiứngdụng 51

4.5 Tích hợp các bộ giả lập lượng tử va máy tính lượng tử 5

4.6 Tích hợp theo dõi hệthống 53

4.7 Triển khai các thành phan chính của hệthống 55

4.71 Triển khaiKubernetes 55

xI

Trang 15

4.7.2 Triển khaiOpenFaaS cốc 56

4.7.3 Triển khai Gilab và CU/CD 57

4.74 Triển kha UlvaBackend 60

4.7.5 Triển khai GateWay ee 62 5 THỰC NGHIỆM VÀ ĐÁNH GIÁ KET QUA 65 5.1 Môi trường thựcnghệm 65

5.2 Xây dựng và triển khai ứng dụng lượng tử 65

5.2.1 Sử dụng Qiskit và bộ giả lập lượng tử củalBM_ 66

5.2.2 Sử dụng Cirq và bộ giả lập lượng tử của Google 69

5.2.3 Sử dụng Qsharp và bộ giả lập lượng tử Microsoft 72

5.3 Sử dụng ứng dụng lượngtỬ 72

5.3.1 Sử dụng ứng dụng lượngtử 74

53.2 Xoáứng dụng lượngtỬ 78

5.3.3 Chỉnh sửa ứng dụng lượngtử 80

5.4 Quanlivatheo dõihệthống - 82

54.1 Quảnlýhệthống c cố eee 82 5.4.2 Theoddihéthéng 0.000.000 ee 82 5.5 Đánh giá hiệu suất hệ thống - 84

5.5.1 Kịch ban 1: Thời gian phản hồi với số lượng người dùng kết nối cùng lúc khác nhau - 84

5.5.2 Kịch ban 2: So sánh thời gian phản hồi các SDKs và ngôn ngữ dựa trên số lượng qubit - 87

6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIEN 89 S.‹ 5 =.a aaẼ 89

6.2 Huéngphattrién 2 eee 89

Tài liệu tham khảo 9

xiii

Trang 16

Danh sách hình vẽ

2.1 BangmaASCIL 1 0 02.0002 eee 5

2.2 Machcong Half-Adder 5

2.3 Biéudiénvitrixe ee 72.4 Mô phỏng trạng thái qubit trước và sau khi áp dụng céng xX 102.5 Mô phỏng trang thái qubit trước và sau khi áp dụng cổng YY 112.6 Mô phỏng trạng thái qubit trước và sau khi áp dụng c6éngZ 12

2/7 Cấu trúc mạch lượngtỬ 14

2.8 Mạch cộng lượngtỬ Ặ QQ Q eee 14

2.9 Mạch cộng lượngtử[l] 15

2.10 Mach lượng tử thuật toán Deutsch-Jozsa’s 16

2.11 Mô phỏng biên độ sau khi khởi tạo trong thuật toán Grover 18

2.12 Mô phỏng biên độ sau khi áp dụng toán tử Oracle trong thuật toán

TOVT Q Q Q Q ee 18

2.14 Mô phỏng chu kỳ lặp lại của hàm số a'(modN) 19

2.15 Mô phỏng mạch lượng tử trong thuật toán Shor 20 2.16 So sánh giữa các SDKs, ngôn ngữ lập trình lượng tử 21

2.17 Quy trình phát triển ứng dụng lượng tử áp dụng DevOps 1 [2] 25

2.18 Quy trình phát triển ứng dụng lượng tử kết hợp áp dụng DevOps 2 [3] 262.19 Sơ đồ giao tiếp giữa các thành phan trong OpenFaaS 282.20 Mô hình các thành phần trong Kubernetes 30

2.21 So sánh các tính năng của QDev với các nghiên cứu liên quan 34

3.1 Mô hình tổng quanhệthống - 383.2_ Mô hình luồng dữ liệu trong hé thống - 42

XIV

Trang 17

in

>

®

iN + Cm UDA WR WL

eS =

in

+ aA aA ® 0®

5.2

5.3

5.4

5.5

5.6

5.7

5.8

5.9

5.10

So đồ tổng quát của các mô-đun trong Backend_ 44

JWT Token 2 Q Q Q Q Q HQ HS 48 Cấu tric JWT Token 22 ee 48 Cơ chế hoạt động cbaJWT 2 eee 49 Giao diện đăng nhập hệ thống - 50

Luu trữ JWT token ở localstorage - 50

Danh sách các máy tính lượng tử vật lý do IBM Quantum cung cấp 54

Danh sách các máy tính mô phỏng lượng tử do IBM Quantum cung cấp 54 Giao diện bảng điều khiển giám sát hệ thống của Grafana 55

Kết quả sau khi triển khai Kubernetes 56

Giao diện người dùng của Gitlab 58

Kết quả sau khi cầu hình Runner cho Gilab_ 58

Kết quả sau khi cau hình biến môi trường cho Gilab 59

Giao diện quản lý các pipeline CI/CD trên Gilab 59

Email tự động nhận được sau khi hoàn thành một pipeline C/CD 62

Cầu hình DNS cho các thành phan trong hệ thống 63

Chuẩn bị yêu cầu và gửi đến API tạo ứng dụng G7 Hệ thống thực hiện quy trình DevOps 67

Các ứng dung lượng tử đã được triển khai trên hệ thống Serverless 68

Kết quả nhận được sau khi triển khai ứng dụng lượng tử bằng API 68

Giao diện trang khởi tạo ứng dụng 69

Giao diện Editor trong trang khởi tạo ứng dụng lượng tử Qiskit 70

Giao diện chờ phản hồi sau khi khởi tao ứng dụng lượng tử Qiskitmới 70 Giao diện quản ly ứng dụng lượng tử 71

Giao diện chon mẫu ứng dung lượng tử Cirq khi khởi tạo 71

Giao diện chờ phản hôi sau khi khởi tao ứng dung lượng tử Cirg bằng

XV

Trang 18

Wm nA MH oO mn ©ö

5.20

5.21

5.22

5.23

5.24

5.25

5.26

5.27

5.28

5.29

5.30

5.31

5.32

5.33

Giao diện chờ phan hôi sau khi khởi tao ứng dụng lượng tử Cirq bằng

Giao diện triển khai ứng dụng lượng tử sử dụng Q# trên UL

Giao diện editor của tập tin handler.qs khi triển khai ứng dụng lượng 789 -ằẰẮẶ ằ a ee Giao diện kết quả sau khi triển khai ứng dụng lượng tử sử dụng Q# Chuẩn bị yêu cầu đầu vào gửi đến API để sử dụng ứng dụng lượng tử Kết quả trả về từ API khi sử dụng một ứng dụng lượng tử

Giao diện trang sử dụng ứng dụng

Kết quả trả về sau khi gửi yêu cầu

Gửi yêu cầu dưới dạng JSON

Chuẩn bị yêu cầu và gửi đến API để xoá ứng dụng

Kết quả trả về từ API khi xoá ứng dụng

Giao diện trang quản ly cic ting dung

Kết quả trả về sau khi gửi yêu cầu

-Chuẩn bị yêu cầu và gửi đến API để chỉnh sửa ứng dụng

Kết quả trả về từ API khi chỉnh sửa ứng dụng

Giao diện trang quản lý các ứng dụng

Kết quả trả về sau khi gửi yêu cầu

Giao diện quan lý Deployment trên ứng dụng Lens

Giao diện quản lý Ingress trên ứng dụng Lens

Giao diện theo dõi và giám sát tài nguyên của hệ thống

Giao diện theo đõi và giám sát tài nguyên của từng ứng dụng bên trong hệ thống SE ee Biểu đồ thời gian phản hồi của các SDKs và ngôn ngữ với số lượng người dùng l,10,20 Ặ

Biểu đồ so sánh thời gian phản hồi của các SDKs và ngôn ngữ với số lượng người dùng 1, 10, 20 khi có scaling

Xvi

Trang 19

5.34 Biểu đồ thời gian phản hồi của các SDKs và ngôn ngữ với số lượng

qubit!],10,20 0.0 00.00.00 000000000000.

XVii

Trang 21

CHƯƠNG1 MỞ ĐẦU1.1 Giới thiệu

Trong những năm gan đây, lĩnh vực máy tính lượng tử đã có nhiều bước đột phá cả

về phần cứng, phần mềm và thuật toán [4] Về phần cứng, Google đã phát triển thành

công máy tính lượng tử 53-qubits vào năm 2019! Năm 2021, IBM cũng cho ra mắt

máy tính lượng tử Eagle với 127 qubits [5] Bên cạnh những công ty lớn như IBM,

Google thì nhiều công ty mới như Rigetti và IonQ cũng đang chạy dua trong việc pháttriển các máy tính lượng tử quy mô lớn [6] Về phần mềm, các công ty công nghệcũng tập trung phát triển bộ công cụ phát triển phần mềm (SDKs) như Qiskit (IBM),Cirq (Google) và ngôn ngữ lập trình mới như Qsharp (Microsoft) giúp việc tiếp cận

và phát triển ứng dụng lượng tử nhanh chóng và dé dàng Về thuật toán, tính toánlượng tử có thể rút ngắn thời gian xử lý hơn rất nhiều lần so với máy tính toán truyền

thống với các thuật toán như: phân tích thừa số nguyên tố lớn với thuật toán Shor [7],

thuật toán tìm tính chất hàm Deutsch-Jozsa [8] và thuật toán tìm kiếm Grover [9]

Tuy nhiên, việc phát triển các ứng dụng lượng tử vẫn còn đối mặt với nhiều tháchthức Đầu tiên, các máy tính lượng tử hiện nay vẫn còn hạn chế về số lượng qubits(quantum bits) ở mức thấp và trung bình, kết quả xử lý chưa ổn định hay được biếtđến là vấn đề NISQ (noisy intermediate-scale quantum) [4] Các ứng dụng trên máy

tính truyền thông hiện nay rất phổ biến, việc thay thế hoàn toàn bằng công nghệ lượng

tử sẽ gây ra những quyết định khó khăn cho doanh nghiệp [10] Phát triển ứng dụnglượng tử là một lĩnh vực còn rất mới, tạo ra nhiều khó khăn và thách thức đối với

những kỹ sư phát triển phần mềm truyền thống [11]

Serverless computing (mô hình điện toán "không máy chủ") có thể là giải pháp

tiềm năng để khắc phục các thách thức mà phát triển ứng dụng lượng tử đặt ra.

Serverless computing được xem như là lớp dịch vụ trung gian giữa con người và

điện toán đám mây, hỗ trợ quản lí hạ tầng máy chủ trong khi đó người dùng có thể

"https://quantumai.google/learn/map

Trang 22

tập trung vào phát triển và triển khai ứng dụng của mình [12] Ngoài ra, mô hìnhserverless computing còn có thể giúp giảm chỉ phí, tối ưu hóa phân bổ tài nguyên và

khả năng mở rộng [13].

Trong khóa luận này nhóm tác giả sẽ triển khai hệ thống tự động hoá quy trình

phát triển phần mềm lượng tử theo mô hình Serverless computing Hệ thống cung cấpmột nền tảng hỗ trợ các lập trình viên phát triển phần mềm lượng tử nhanh chóng, tựđộng mà không cần quan tâm đến việc cài đặt máy chủ và các dịch vụ cần thiết Đồngthời hệ thống cũng giúp người dùng dễ dàng tiếp cận và sử dụng các ứng dụng lượng

tử qua giao diện trực quan, tiện lợi.

1.2 Mục tiêu nghiên cứu

* Nghiên cứu về các kỹ thuật lập trình, lý thuyết cơ bản về lượng tử và các thưviện mã nguồn mở hỗ trợ lập trình ứng dụng lượng tử

» Nghiên cứu áp dụng mô hình điện toán không máy chủ vào triển khai ứng dung

lượng tử.

* Xây dựng hệ thống dựa trên mô hình điện toán không máy chủ hỗ trợ phát triển

các ứng dụng lượng tử.

» Đánh giá tính hiệu quả, chức năng của hệ thống và chứng minh khả năng ứng

dụng thực tế của đề tài trong việc phát triển phần mềm lượng tử

1.3 Đối tượng nghiên cứu và phạm vỉ nghiên cứu

* Lý thuyết cơ bản, các kỹ thuật lập trình phần mềm lượng tử

* Các framework triển khai mô hình Serverless cloud computing

» Nghiên cứu sử dụng các dịch vụ máy tính lượng tử của nhà cung cấp IBM

Quantum

* Các kỹ thuật, giải pháp phát triển phần mềm truyền thống cho phát triển phần

mềm lượng tử

Trang 23

1.4 Cấu trúc Khóa luận tốt nghiệp

Phần còn lại của Khóa luận tốt nghiệp được trình bày theo trình tự sau: nhóm tác

giả sẽ trình bày cơ sở lý thuyết và các nghiên cứu liên quan ở Chương 2 Ở Chương

3, nhóm tác giả tiến hành phân tích và thiết ké mô hình kiến trúc hệ thống, cách triển

khai cũng như cách thức hoạt động được trình bay ở Chương 4 Sau đó, ở Chương 5

nhóm tác giả đặt ra các kịch bản thực nghiệm để đánh giá tính hiệu quả và hiệu suất

của hệ thống Cuối cùng, nhóm tác giả đưa ra kết luận và hướng phát triển của đề tài

trong tương lại tại Chương 6.

Trang 24

CHUONG 2 CƠ SỞ LÝ THUYET VÀ CÁC NGHIÊN

CỨU LIÊN QUAN

2.1 Tính toán lượng tử (Quantum computing)

Trước khi tìm hiểu về tính toán lượng tử và các khái niệm liên quan, nhóm tác giảtóm tắt sơ lược về cách các máy tính hiện nay biểu diễn thông tin

2.1.1 Bit và tính toán truyền thống (classical computing)

Trên các máy tính truyền thống, mọi thông tin được biểu diễn dựa trên bit, trong

đó mỗi bit tồn tại ở một trong hai trạng thái, 0 và 1 Ví dụ đơn giản là sử dụng hệ nhị

phân biểu diễn các chữ số thập phân 0, 1, 2, 3, 4, 5, 6, 7, 8 và 9 bằng cách sử dụng

các kí tự 0 và 1 để biểu diễn các số như là bội số của 2 Ví dụ nhị phân của số 9213 là

kí tự đặc biệt Tóm tắt bảng mã được mô tả ở hình 2.1 Từ đó, mọi thông tin trên máytính như chữ số, kí tự, hình ảnh, âm thanh phức tạp hơn đều được biểu diễn dựa trên

các quy ước này.

Ngoài biểu diễn thông tin, các chương trình máy tính, các phép toán đều được xâydung và thực hiện dựa vào bản chất bên dưới là các sơ đồ mach (circuit diagram) Cácmạch này có đầu vào bên trái và bên phải là các bit, ở giữa sẽ thực hiện các phép biến

Trang 25

Nhị phân Kí tự Nhị phân Kí tự Nhị phân Kí tự

nguyên tử (molecule simulation), xử lý các mô hình máy học phức tạp, phân tích thừa

số nguyên tổ lớn, phát sinh số hoàn toàn ngẫu nhiên (truly-random)

2.1.2 Cơ sở toán học

Không gian Hilbert là một trong những cấu trúc toán học quan trọng nhất trong cơ

học lượng tử và tính toán lượng tử Một không gian Hilbert có thể được coi là không

gian trang thái trong đó tat cả các vectơ trạng thái lượng tử "live" Sự khác biệt chính

Trang 26

giữa không gian Hilbert và bất kỳ không gian vectơ ngẫu nhiên nào là không gian

Hilbert mang một giá trị bên trong, là một kết quả có thể được thực hiện giữa hai

vectơ và trả về kết quả vô hướng

"Trong cơ học lượng tử và tính toán lượng tử, giá trị bên trong giữa hai vectơ trạng

thái trả về một đại lượng vô hướng biểu thị số lượng mà vectơ thứ nhất nhân tương ứngvới các phan tử trong vectơ thứ hai Từ đó, xác suất đo lường ở các trạng thái lượng tử

khác nhau có thể được tính toán

Cho hai vectơ |a) va |b) trong không gian Hilbert, biểu thi giá trị là (z|b), trong

đó (a| bằng với chuyển đổi liên hợp của |a), ký hiệu |a)† Do đó, kết quả giá trị của

hai vectơ của không gian Hilbert được mô tả như trong công thức 2.2.

(alb)=(aj aj a )] |=AiBitajbs+ tagjbm 22)

Một trong những điều kiện quan trong nhất đối với không gian Hilbert đại diện

cho một hệ thống lượng tử là tích vô hướng của một vectơ với chính nó bằng một:(ự | w) = 1 Đây là điều kiện được gọi là điều kiện chuẩn hóa, với chiều dài của vectơ

bình phương bằng một Ý nghĩa vật lý của điều này là độ dài của một vectơ theo một

hướng cụ thể là đại điện cho biên độ xác suất của hệ thống lượng tử liên quan đến đo

lường ở trạng thái cụ thể đó

2.1.3 Qubit và tính toán lượng tử (quantum comuting)

Tinh toán lượng tử được xây dựng dựa trên nền tảng của cơ học lượng tử (quantum

mechanics), vốn là lý thuyết vật lý phản ánh bản chất của thế giới vật chất ở mức độ

nguyên tử và phân tử [14] Trên máy tính lượng tử, thông tin được biểu diễn dựa trênđơn vị là qubit Tương tự với bit, qubit chỉ có thể lưu trữ được giá trị là “0” và “1” và

Trang 27

Hình 2.3: Biểu diễn vị trí xe

cho ra duy nhất một giá trị “0” hoặc “1” khi đo lường (measurement) thông tin từ nó.Tuy nhiên, đặc điểm quan trọng của qubit so với bit truyền thống là nó có thể tồn tại

ở trạng thái “chồng chập lượng tử” (superposition) Ở trạng thái này, mỗi qubit có thể

cùng mang hai giá tri “0” và “1” tai cùng một thời điểm Ví dụ, với 8 bit thông thường

có thể biểu diễn được bat kì một số thập phân có giá trị từ 0 đến 255, trong khi đó 8

qubit có thể mang trạng thái superposition với toàn bộ 256 giá trị trong cùng một thời

điểm Từ các tính chất của qubit có thể tạo ra nhiều cổng luận lý và thuật toán mới

với tốc độ tính toán nhanh hơn đáng kể so với tính toán truyền thống Cách biểu diễn

qubit:

+ Vector trạng thai (statevectors)

Trong tính toán, vector thường được dùng để biểu diễn phương, chiều va độlớn của đại lượng như gia tốc, vận tốc và các đặc tính khác tùy vào mục đích sử

dụng, các vector dùng để biểu diễn trạng thái có thể được gọi là các statevectors

Ví dụ trong hình 2.3, tại vị trí đặt xe có thể đánh dấu là 1, ngược lại các vi tríkhác sẽ được đánh dấu là 0 Vậy vector trạng thái x của vị trí đặt xe có thể được

biểu diễn như sau 2.7:

ix) = lo (2.3)

Trang 28

Tắt cả các trạng thái phức tạp khác của qubit đều có thể biểu diễn bằng hai trạng

thái cơ bản |0) và |I) Ví dụ, trạng thái |qo) có thể biểu diễn như sau:

sau:

Trong đó a, b là hai số phức và thoả mãn điều kiện 2.8, ||ø||? va ||b||? là xác suất

đo lường được trạng thái |0) và |1) của qubit |Ự).

|la|Ứ + I|b|Ứ = ! (2.8)

Trang 29

Một tính chat quan trọng khác của qubit đó là sự “vướng víu lượng tử” (entanglement).

Tính chất này thể hiện mối liên hệ chặt chẽ giữa hai qubit, tức khi biết được

trạng thái của qubit này thì có thể xác định được trạng thái của qubit kia mặc

cho khoảng cách giữa chúng là rất xa Trạng thái “vướng víu” có thể tạo ra bằng

cách áp dụng cổng CNOT 2.24

Do lường (measurement) giá trị của trạng thái qubit là xác định khả năng, xác

suất có được trạng thái |x) của một trạng thái |), trong đó, |x) có thể là bất kì

trạng thái nào Xác suất này được tính bằng cách lấy nhân vô hướng của vector

trang thái |x) và vector trang thái |y), sau đó lấy bình phương độ lớn

p(*)) = |&lw) (2.9)

Xét ví dụ 2.6, khi do lường trạng thái |0) kết quả xác suất là 2.

1).0 (2.10)

2.1.4 Một số cổng lượng tử

“Trên máy tính lượng tử, để thực hiện phép toán lượng tử trên qubit sẽ cần áp dụng

các cổng lượng tử tương tự như cách áp dụng các cổng trên máy tính truyền thống như

AND, OR, XOR va NOT trên các bit truyén thống Có thể chia thành hai loại chính

là cổng đơn qubit và cổng đa qubit:

* Cổng don qubit (Single-qubit gates) là cổng lượng tử áp dụng đồng thời cho

duy nhất một qubit bao gồm nhiều loại:

Trang 30

— Cổng X: là cổng được đại điện bởi ma trận Pauli-X như sau:

0 1

øy=X= = |0)(1) +|1) (0| 2.11)

Cổng X giống với cổng NOT trên máy tính truyền thống vì nó làm thay đổi

biên độ của trạng thái qubit |0) và |1), hình 2.4 mô phỏng trạng thái qubit

trong không gian 3 chiều

Hình 2.4: Mô phỏng trạng thái qubit trước và sau khi áp dụng cổng X

- Cổng Y: là cổng được đại điện bởi ma trận Pauli-Y như sau:

0 -i

oy =Y= = —i|0)(1| +i|1) (0| = i.oy.oz (2.14)

i 0

Cổng Y cũng tương tự như cổng X nhưng nó xoay qubit quanh trục Y trong

không gian một góc bằng Z, hình 2.5 mô phỏng trang thái qubit trongkhông gian 3 chiêu

10

Trang 31

a0) jo)

x x tan

Ù )Hình 2.5: Mô phỏng trạng thái qubit trước và sau khi áp dụng cổng Y

— Cổng Z: là cổng được đại diện bởi ma trận Pauli-Z như sau:

0

oz =Z= = |0)(0| —|1)(1| (2.15)

Cổng Z làm cho xoay qubit quanh trục Z trong không gian một góc bằng z,

tuy nhiên sé không làm thay đổi trạng thái |0) và |1) của qubit mà sẽ làmthay đổi pha của nó giữa |+) và |—), hình 2.6 mô phỏng trạng thái qubit

trong không gian 3 chiều

=f OP ty et] fan eto

- Cổng Hadamard (H): là cổng tạo ra sự chồng chập trạng thái |0) và |1)

cho qubit Cổng H được thể hiện bởi ma trận sau:

J1! 1 1

H= = ;(0)(0|+|0)(1I+|1(0|—|D@J) 18)

Cổng H làm thay đổi trạng thái qubit như công thức dưới đây, hình 2.6 mô

11

Trang 32

Hình 2.6: Mô phỏng trạng thái qubit trước và sau khi áp dụng cổng Z

phỏng trạng thái qubit trong không gian 3 chiều

(0-0-2) e® sin(Ø/2) e^*!? cos(@/2)

Chúng ta có thể thấy mọi cổng ở trên đều có thể tạo ra khi thay đổi các giátrị Ø, ở và A, ví dụ như cổng H:

12

Trang 33

(control), qubit còn lại đóng vai trò là mục tiêu (target) Điều này có nghĩa làqubit mục tiêu sẽ thay đổi trạng thái nếu qubit điều khiển có trang thái là |1) vakhông thay đổi nếu trạng thái của nó là |0) Cổng CNOT biểu diễn dưới dạng

ma trận tuỳ thuộc vào qubit nào là qubit điều khiển và qubit mục tiêu có hai

dang:

1000 1000

0001 0100 CNOT = ,CNOT = (2.23)

0010 0001

0100 0010

Cổng CNOT có thể tạo ra trạng thái vướng víu (entangled) lượng tử khi áp dung

vào qubit có trạng thái |(0+) Được mô tả

CNOTI0+) = -5(I00) + |11)) (2.24)

2.1.5 Mach lượng tử (Quantum circuits)

Tương tự với máy tính truyền thống, máy tính lượng tử sử dung các mạch lượng

tử để thực hiện các phép tính toán Xây dựng một mạch lượng tử gồm 3 bước chính,

hình 2.7:

+ Bước 1: Xử lí đầu vào Đây là bước cơ bản khi bắt đầu xây dựng một lượng tử,

bước này quyết định giá trị khởi tạo đầu tiên của qubit đầu vào

» Bước 2: Thực hiện các phép tính Sử dụng các cổng lượng tử thực hiện các

phép toán và biến đổi trang thái các qubit

+ Bước 3: Do lường kết quả Trạng thái qubit luôn thay đổi do đó cần xác định

giá trị của từng qubit

Xét ví dụ mạch lượng tử cộng có nhớ được mô tả hình 2.8 với đầu vào 4 qubits Ở

bước xử lí đầu vào mạch sử dụng cổng X ở qo va qi để chuyển đổi trạng thái |0) thànhtrạng thái |1) (qubit mặc định đầu vào ở trạng thái |0) Dựa vào bảng sự thật của bài

13

Trang 34

Do operations

on bits

impor TC

Extract

Hình 2.7: Cau trúc mach lượng tử

toán 2.9, ý tưởng là với hai đầu vào giống nhau thì đầu ra sẽ luôn là 0 và ngược lạikhác nhau thì dau ra là 1 Do đó ở phần thứ hai, các cổng CNOT được sử dụng ở cặp(40.42) và (1,92), néu qo và qi giống nhau 4s sẽ có giá trị là 0 Tiếp theo, số nhớ sẽ

bằng 1 khi go và z¡ cùng bằng 1, tại đây cổng Toffoli (tương tự như CNOT nhưng có

2 qubit điều khiển) được áp dụng cho (qo, ¡, đ3), kết quả gz sẽ là bit nhớ cuối cùng

qo

qd

q2

q

2.1.6 Các thuật toán lượng tử phổ biến

1 Thuật toán Deutsch-Jozsa

Bài toán Deutsch-Jozsa [8] đặt ra là với một ham f(x) cho trước thì hàm đó làbên bat biến (constant) hay cân bằng (balanced).

14

Trang 35

Input1 | Input2 | XOR Output

* Phương pháp truyền thong:

— Trường hợp tốt nhất: Trong hai lần thử, lần thứ nhatf(x) cho ra 0 và

lần thứ hai cho ra 1 vậy có kết thể kết luậnƒ(x) là hàm cân bằng.

— Trường hợp xấu nhất Trong trường hợp xấu hơn, phải thử chính xác

một nửa tất cả số lần thử để có thể xác định được f(x) là bất biến

— Theo xác suất thì số lần thử càng tăng, tỷ lệ dự đoán chính xác càng

cao

P()=1—1/2”1, (1<k <2") (2.25)

Từ xác suất trên có thể kết luận độ phức tạp của bài toán này là O(n)

* Phương pháp ứng dung tính toán lượng tử:

Máy tính lượng tử có thể xác định đúng f(x) là bền vững hay cân bằng chỉ trong một lần thử, nói cách khác độ phức tap của bai toán là O(1) Ý tưởng

chính của thuật toán là ứng dụng tính chất chồng chập lượng tử của qubit

Thuật toán được mô ta ở hình 2.10.

Trang 36

Hình 2.10: Mạch lượng tử thuật toán Deutsch-Jozsa’s

Xây dựng thuật toán gồm các bước:

— Bước 1: Thiết lập đầu vào N-qubit đầu vào đầu tiên được thiết lập ở

trạng thái |0) và một qubit ở trang thái |1).

Trang 37

— Bước 4: Áp dụng cổng Hadamard cho n đầu vào đầu tiên

qubits đầu tiên là |0)S" = |3; #2 ạ'(—1)/0)2:

* Xác suất luôn bằng 0 nếu f(x) là hàm cân bằng, kết quả đầu ra là

111.11.

+ Xác suất luôn bang | nếu f(x) là hàm bất biến, kết qua dau ra là

000 00.

2 Thuật toán Grover

Thuật toán được Lov Kumar Grover giới thiệu vào năm 1996 [9] Thuật toán

Grover ứng dụng máy tính lượng tử để tìm kiếm trên cơ sở dữ liệu chưa được

sắp xếp gồn N phan tử chưa sắp xếp Thuật toán tìm kiếm trên với độ phức tạp chỉ là O(./N) tương ứng với số lần lặp lại để tìm ra kết quả chính xác Thuật

toán thực hiện qua những bước sau:

* Bước 1: Tạo ra mạch với 2" qubit và áp dụng cổng # vào mỗi qubit bắt đầu

ở trạng thái |0)” Tại bước này biên độ của các giá trị được mô phỏng như

hình 2.11.

* Bước 2: Áp dụng toán tử Oracle để đánh dấu các phần cần tìm trong số 2"

mục tiêu Toán tử Oracle sé áp dụng hệ số —1 cho những mục tiêu đượcđánh dấu kết quả như mô phỏng ở hình 2.12

* Bước 3:Sử dụng toán tử Diffusion để đảo ngược biên độ của tất cả các phần

tử về biên độ trung bình Sau khi thực hiện kết quả của biên độ của các giá

trị được mô phỏng như hình 2.13.

17

Trang 38

3 Thuật toán Shor’s

Thuật toán Shor được Peter Shor giới thiệu vào năm 1995 [7], ứng dụng máy

tính lượng tử để phân tích một số nguyên X thành hai số nguyên tố p,q sao cho

https://learn.qiskit.org/course/ch-algorithms/grovers-algorithm

18

Trang 39

N = p.q Ung dụng của thuật toán này có thể phá được mã RSA do độ phức tạp

khi thực hiện trên máy tính lượng tử thấp

» Độ phức tạp trên máy tính truyền thống:

Hình 2.14: Mô phỏng chu kỳ lặp lại của hàm số a"(mod N)*

¢ Bước 1: Chọn một số a là sô nguyên tố cùng nhau với N Tức là tim số asao cho a và N có ước chung lớn nhất là 1

* Bước 2: Tìm giá trị r nhỏ nhất khác 0 sao cho a’ (mod N) = 1 Để tìm được

r nếu thực hiện trên máy tính truyền thống sẽ tốn thời gian rất lâu do độ

?https://Iearn.qiskit.org/course/ch-algorithms/shors-algorithm

19

Trang 40

phức tạp lớn khi số N lớn Thuật toán Shor ứng dụng máy tính lượng tử đểgiải quyết vấn đề trên Bài toán tìm r thực chat là tìm chu kỳ lặp lại củahàm số ø"(mod N) như minh hoạ trong hình 2.14 Thuật toán tìm z trên máy

tính lượng tử được thực hiện với những bước chính sau Đầu tiên khởi tạo

các qubit, gán cổng H cho những qubits đầu tiên và cổng X cho qubit cuốicùng Sau đó áp dụng hàm luỹ thừa module và áp dụng biến đổi Fourier(QFT) Cuối cùng, đo lường qubit để lấy được kết quả r cần tìm Toàn bộquá trình biến đổi của qubit được mô phỏng trong hình 2.15

Hình 2.15: Mô phỏng mạch lượng tử trong thuật toán Shor:

* Bước 3: Kiểm tra kết quả r ở bước 2 sao cho r thoả điều kiện r là số chan

và x+ 1 # 0(modN) với x = a"/2(modN), nêu không thoả hai điều kiện

trên, ta cần thực thiện lại từ đầu với một giá trị a khác

« Bước 4: Tìm giá trị p,q dựa vào x với x = a’/?(modN), kết quả p,q cần

tim là ước chung lớn nhất của x + 1 với N và x— I với N

2.1.7 Thách thức hiện tại của tính toán lượng tử

Trong nghiên cứu [4], tác giả đã tóm tắt thực trạng của phần cứng lượng tử hiện

nay là "Noisy Intermediate-Scale Quantum (NISQ)” Các máy tính lượng tử vẫn có độ

nhiễu (noise) do các yếu tố môi trường Nói cách khác, kết quả sau khi do lường ở cáccổng lượng tử và qubit vẫn chưa hoàn toàn đạt độ chính xác tuyệt đối dẫn đến trong

3https://learn.qiskit.org/course/ch-algorithms/shors-algorithm

20

Ngày đăng: 03/11/2024, 18:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN