TNU Journal of Science and Technology
229(07): 65 - 72
http://jst.tnu.edu.vn 65 Email: jst@tnu.edu.vn
RESEARCH ON APPLICATION OF GROVER'S QUANTUM ALGORITHM
TO DNA SEQUENCING
Dung Van Lu, Huynh Phuong Anh*, Huynh Bao Nguyen,
Nguyen Ngoc Minh Tri, Cao Thi My Hao, Nguyen Thi Hong
The University of Danang - University of Science and Education
ARTICLE INFO
ABSTRACT
Received:
20/3/2024
In order to search through an unstructured database of N elements,
Grover's quantum search algorithm has O (√N) time complexity and
uses O (log N) storage space thanks to the application of quantum
mechanical properties (such as, superposition, entanglement,...) in each
step of this algorithm. In this article, we studied the Grover quantum
algorithm and clarified the quantum supremacy of the algorithm by
analyzing the "behavior" of quantum mechanical properties in each step
of this algorithm. In addition, we calculated and implemented on IBM
quantum computers through the Qiskit platform in applicating for the
problem of DNA sequencing with a string of length N = 8. The results
showed that the Grover‟s quantum search algorithm has superior search
capabilities compared to existing algorithms as the quantum computer
has a sufficient number of qubits, which helps to reduce the time and
resources needed to determine the gene sequence and provides more
effective methods for molecular biology.
Revised:
Published:
23/5/2024
24/5/2024
KEYWORDS
Quantum Algorithm
Quantum computing
Grover's algorithm
Unstructured search
DNA sequencing
NGHIÊN CỨU NG DNG THUẬT TOÁN LƯỢNG T GROVER
TRONG GIẢI TRÌNH TỰ DNA
Dụng Văn Lữ, Hunh Phương Anh*, Hunh Bảo Nguyên,
Nguyn Ngọc Minh Trí, Cao Thị M Ho, Nguyn Th Hng
Trường Đại học Sư phạm Đại học Đà Nẵng
TÓM TẮT
Ngày nhận bài:
20/3/2024
Để tìm kiếm tn một cơ s d liu phi cu trúc gm N phn t, thut
toán lưng t Grover đ phc tp v thời gian O(√N) sử dng
O(log N) không gian lưu tr nh ng dng của các tính chất cơ học
ng t. Trong i báo y, chúng tôi nghn cu thuật toán ng t
Grover m rõ tính ưu vit ca thut toán bằng cách pn tích các
“hành xử” của nh chất học ng t (như chng chất, vướng
víu,...) trong tng bưc ca thuật tn. Đng thời, chúng tôi tính tn
triển khai trên y tính ng t IBM thông qua nền tng Qiskit
trong bài toán gii trình t DNA vi chuỗi độ dài N = 8. Kết qu
cho thy thuật toán lượng t Grover có kh năng m kiếm ưu vit n
c thuật toán hiện có khi y nh lưng t số qubit đ ng, điu
y giúp giảm thời gian ngun lc cn thiết đ xác đnh chui gen
đng thi cung cấp phương pháp hiu qu hơn cho nghiên cu sinh
học pn t.
Ngày hoàn thiện:
23/5/2024
Ngày đăng:
24/5/2024
T
KHÓA
Thuật toán lượng t
Máy tính lượng t
Thuật toán Grover
Tìm kiếm phi cấu trúc
Giải trình tự
DNA
DOI: https://doi.org/10.34238/tnu-jst.9932
* Corresponding author. Email: panh26072002@gmail.com
TNU Journal of Science and Technology
229(07): 65 - 72
http://jst.tnu.edu.vn 66 Email: jst@tnu.edu.vn
1. Gii thiu
Đối với bài toán tìm kiếm t d liu gm N phn tử, đặc biệt là một cơ sở d liu phi cấu trúc,
thi gian cn thiết đối với các giải pháp cổ đin hiện nay tuyến tính, tức bậc O(N) v thi
gian. Trong khi đó, thuật toán lượng t Grover (GA) ch mt thời gian O(√N) s dng O(log
N) không gian lưu trữ [1]. thuật toán lượng t tìm kiếm sở d liu phi cấu trúc nhanh
nht vi kh năng tăng tc bậc hai, đây là điểm khác bit với các thuật toán lượng t khác. Khi N
càng lớn thì GA càng thể hin s tăng tốc hơn tiết kiệm được tài nguyên hơn. GA một
thuật toán lượng tử, sử dng một vài thuộc tính cốt lõi của tính toán lượng t như chồng cht
ng t và vướng víu lượng t [2]. Đơn vị thông tin cơ bản trong tính toán lượng t là bit lượng
t (qubit) được tả bi trạng thái lượng t | | ⟩. Mt trạng thái bất trong hệ mt
qubit chng cht của các qubit bản | | ⟩, trong đó a, b là những s phc tho
mãn | | | | | | | | xác xuất trạng thái | | ⟩ tương ng. Khi h n
qubit thì trạng thái tổng quát chồng chất vướng víu từ trạng thái bản. Nh các tính
chất lượng t này mà các thuật toán lượng t có khả năng xử lý nhanh hơn các thuật toán c điển.
Trong những nghiên cứu gần đây, GA được ng dng rộng rãi trong các vấn đề liên quan tìm
kiếm d liu phi cấu trúc hay ti ưu hoá. GA làm tăng biên đ xác suất ca trạng thái được đánh
dấu để tăng tốc nhiu loi thuật toán khác để giải bài toán 3SAT [3]. GA giúp tăng tốc kh thi
cho các bài toán hộp đen về độ phc tp ca truy vấn lượng t, bao gồm tính khác bit ca phn
t [4]. Người ta cũng áp dng GA trong h thống điện và năng lượng để gii quyết ba vấn đề ct
lõi: độ tin cy, tối ưu hóa và kiểm soát [5]. Hoặc tiềm năng ứng dụng GA trong máy học lượng t
[6]. Bên cạnh đó, cũng được ci tiến kết hp với các thuật toán khác để gii nhng vấn đề
phc tạp hơn, điển hình như việc đưa ra GA phân tán [7], hay triển khai kết hp với các hàm băm
c điển MD5, SHA-1, SHA-2 SHA-3 [8], hoc trin khai cho AES-128, -192 -256 trong
phn mềm lượng t [9].
Giải trình tự DNA là một lĩnh vực nghiên cứu quan trọng trong ngành sinh học phân tử, nhm
xác định chuỗi gen và thông tin mã hóa của các phân tử. Việc nghiên cứu trình tự DNA được coi
một yếu t quan trọng mang các chi tiết v b gen thể được các nhà nghiên cứu s
dụng để d đoán sớm bnh tật. Công cụ giải trình tự DNA được dùng phổ biến Sanger các
thế h mới [10]. Tuy nhiên, khi kích thước d liu lớn nhiều thông tin trong xử thì thuật
toán và máy tính cổ đin s có những hn chế nhất định.
Gần đây, Marina cng s đã kết hp thuật toán tìm đường lượng t khuếch đại biên đ
Gaussian để giải trình tự DNA [11]. Sarkar và cộng s đã đề xut mt thuật toán lượng t để gii
quyết lĩnh vực x lý dữ liệu đầy thách thức để tái cấu trúc trình tự b gen [12]. Tuy nhiên, việc áp
dng thuật toán lượng t trong giải trình tự DNA vẫn đang trong quá trình phát triển đòi hỏi
s tích hợp cht ch gia kiến thức lượng t sinh học. Điều này đặt ra nhiu thách thức
hội nghiên cứu mi, m rng phm vi ca việc áp dụng công nghệ ng t trong thi k hiện đại
ca khoa hc [13].
Trong bài báo này, chúng tôi phân tích ở mục 2 các bước trin khai thuật toán lượng t Grover
t góc nhìn học lượng t. mục 3 trình bày tính toán mạch lượng t triển khai thut toán
trên máy tính lượng t thực thông qua nn tng Qiskit đối với bài toán giải trình tự DNA ca mt
đoạn axit nucleic có độ dài N = 8 vi mu cần tìm có độ dài M = 2. Cuối cùng là phần kết lun v
tính ưu việt ca thuật toán lượng t Grover tiềm năng ng dng của để gii quyết các bài
toán tối ưu trong tương lai.
2. Thuật toán lượng t Grover
2.1. Vấn đề cần tìm kiếm
Gi s ta một ô sở d liu gm phn t to thành tập hp
* + và cho trước một hàm Boolean * +. Ta s dụng toán tử ,
sao cho:
TNU Journal of Science and Technology
229(07): 65 - 72
http://jst.tnu.edu.vn 67 Email: jst@tnu.edu.vn
| {|
| ( )
Mục tiêu của GA là tìm ra ch s | tho mãn điều kiện trên [1].
2.2. Biu din mch lượng t ca thuật toán Grover
Hình 1. Mạch lượng t biu din thut toán lượng t Grover
GA [1] có thể mô tả ngn gọn như Hình 1, các bước ca thuật toán được diễn ra như sau:
c 1: Khi to trạng thái. Thanh ghi thứ nht gm n qubit được nhập vào t trạng thái |0.
S n qubit được chn ti thiu sao cho , -, vi số phn t ca d liu cần tìm.
Thanh ghi th hai gm một qubit và được thiết lp t trạng thái |1:
| | | ( )
Mỗi cổng Hadamard đơn tác dụng lên mỗi qubit đơn, tạo ra trạng thái chồng chất. Như vậy,
sau bước 1, tức là đầu vào hộp đen (oracle) , ta có trạng thái lượng t:
| | (
[
]) [
] [
]
|
(| | ⟩) | ⟩| ( )
c 2: Thc hin vòng lặp Grover r(N) lần. Hàm r(N), có độ phc tp ( ), được miêu tả
như sau:
(a) Thc hin toán tử (còn gọi là hàm oracle, hàm trong hộp đen)
| |
|
| ( )⟩ | ( )⟩
| ⟩( ) ( )|
( )
Đối vi mi | , vi ( ) thì biên đ của không thay đổi. Ngưc lại, biên độ thành
âm.
(b) Thc hiện toán tử . Sau mi ln lp , trạng thái được xoay v gn vi trạng thái
| | hơn, với góc xoay : ( )
c 3: Thc hiện phép đo. Kết qu của phép đo sẽ là với xác suất tiến ti 1 khi
T ta có thể tìm thấy | . Sau k ln lp, trạng thái của h n qubit v gn vi trạng thái | , s
k nh nhất đ xác suất trên gần với 1 . Như vậy, thuật toán tìm kiếm Grover độ
phc tp ( ) v thời gian nên sẽ tìm kiếm nhanh hơn khi dùng thuật toán toán cổ điển.
2.3. Biu din vector quay ca thuật toán Grover
(a)
(b)
(a)
(b)
Hình 2. Trạng thái ban đu: (a) biu din vector |
và (b) biên đ ca phn t cần tìm
Hình 3. Lần quay đầu tiên: (a) vector | với góc
quay và (b) biên độ ca phn t cần tìm
TNU Journal of Science and Technology
229(07): 65 - 72
http://jst.tnu.edu.vn 68 Email: jst@tnu.edu.vn
c 1: Khi to vector | (Hình 2). Hình 2(a) mô tả trạng thái | cần tìm bằng cách tạo
vector | trc giao với nó, tức | , vị trí của | trên đồ th to bi h trục vuông
góc | và | được xác định là chồng cht ca hai trạng thái cơ sở này:
| | | |
( )
Trong bước này, biên độ ca | chưa phân biệt vi các phần t còn lại (Hình 2(b)).
c 2: Áp dụng toán tử (oracle) lên trạng thái | và làm nó quay 1 góc . Lúc nào, biên
độ xác xuất ca | b lật ngược v âm như được mô tả Hình 3.
c 3: Thc hiện toán tử cho trạng thái | trong đó: | ⟩⟨ | khuếch đại vector
màu xanh | gần n với | . Hình 4 cho thấy phép biến đổi làm tăng biên đ ca | cần tìm
lên khoảng 3 lần giá tr ban đầu, đồng thi giảm các biên độ của các trạng thái khác.
Cuối cùng, ta thực hiện phép đo, trạng thái nào cho xác suất (bình phương biên đ) cao nht
chính là trạng thái cần tìm.
(a) (b)
Hình 4. (a) Trạng thái | gần hơn về phía | ;
(b) biên độ ca | tăng dần
Hình 5. Sơ đ mch GA vi 3 qubit
3. ng dng thuật toán lượng t Grover để giải tnh tự DNA
DNA là chuỗi polyme dài, dạng si, cha gen di truyền quy định mi hoạt động sng của các
sinh vật và nhiều loài virus. Nó có bốn phân tử nucleic: adenine (A), cytosine (C), guanine (G) và
thymine (T). Các cặp adenine với thymine và guanine với cytosine, được biu th bng A-T và G-
C, được gọi là cặp bazơ (bp) trong DNA [10].
Trong ví dụ của nghiên cứu này, chúng tôi lấy một đon chui DNA loi hCoV-19 đoạn
gen như sau: ATTAAAGGTTTATACCTTCCCAGGTAACAAACCAACCAACTTTCGAT…
Gi s một đoạn b li thymine “ATAC” (được đặt chuỗi F) cần T v trí nào trong
chuỗi này.
Để giải trình t DNA bng GA, các nucleotide được mã hóa thànhc trạng thái lượng t sau:
| | | | | | | | (6)
Khi đó, chuỗi cn tham chiếu * + được hóa thành | | độ dài
mu . Chui cn tìm * + được mã hoá thành | | độ dài . Ta cn tìm
v trí xuất hin ca mu | trong chui | . Dưới đây, chúng tôi tính toán triển khai để gii
quyết vấn đề này trên nền tng Qiskit.
3.1. Tính toán theo mô hình mạch
Hình 5 tả mạch lượng t GA cho mạch 3 qubit được s dụng để tính toán trong trường
hợp này. Trạng thái từ đầu vào được khi to | | | ⟩, sau khi áp dụng cng Hadamard
[2] to ra s chng cht ca tt c các trạng thái có biên độ bng nhau:
|
(| | | | | | 6 |6 | ⟩) ( )
Trong đó, mỗi trạng thái chỉ mc | ng vi i, j là vị trí trong chuỗi | , nghĩa là, trạng thái
|0,1 biu diễn cho “00”, |1,2 biu diễn cho “01”, …, |7,0 biu diễn cho “10” trong chuỗi | .
TNU Journal of Science and Technology
229(07): 65 - 72
http://jst.tnu.edu.vn 69 Email: jst@tnu.edu.vn
Vi mu | ⟩ | nên ta cần áp dụng hai ln. Bắt đầu vi kí hiệu đầu tiên nếu chúng
bằng nhau thì trạng thái tương ng vi ch s đầu tiên sẽ b đảo ngược, nếu không toracle s
gi nguyên trạng thái. Trạng thái thu được sau khi áp dụng như sau:
|
(| | | | | | 6 |6 | ⟩) ( )
Sau đó, sau khi áp dụng Oracle tương t cho kí hiệu th hai:
| |
(| | | | | | 6 |6 | ⟩) ( )
Các trạng thái có biên độ dương (dấu „+‟) s là mẫu cần tìm. Nhưng ngoài trạng thái | phù
hp vi kết qu cần tìm, còn các trạng thái khác cũng dấu dương. Vấn đề này được gii
quyết bằng cách áp dụng toán tử khuếch đại | ⟩⟨ | , trạng thái cần tìm sẽ được khuếch
đại nhiều hơn các trạng thái khác. Kết qu đo sẽ cho dạng xác suất, đây là điểm đặc bit so vi
thuật toán cổ điển. Tiếp theo, chúng ta s thu đưc kết qu chính xác khi triển khai trên Qiskit.
3.2. Trin khai thuật toán trên nn tng Qiskit
Sau khi nhập lệnh „import‟ từ các thư viện module cn thiết để thực hiện trong môi trường
ng ttrên nền tảng Qiskit [14]. Chúng tôi ch n thêm thư viện Qibo lệnh khởi to mch
ng t cho thuật toán:
def initialize( N, M, s, string_w, pattern_p):
for i in range(N):
if string_w[i] == 1:
c.add(gates.X(i))
for i in range(M):
if pattern_p[i] == 1:
c.add(gates.X(i + N))
for i in range(int(s/2)):
c.add(gates.H(i + N + M))
for i in range(int(s/2)):
c.add(gates.CNOT(i + N + M,i + int(s/2) + N + M))
for i in range(int(s/2)):
if i == (int(s/2)-1):
c.add(gates.X(N + M + s - 1))
else:
c.add(gates.X(int(s/2) + i + M).controlled_by(*range(int(s/2) + i + N + M + 1, N + M + s)))
return c
Đoạn code sau đây được viết để thực hiện việc khuếch đại trạng thái cần m bằng toán tử
phản xạ tức là đảo trạng thái có biên độ cao hơn các trạng thái khác:
def diffusion(N, M, s):
c.add([gates.H(i) for i in range(N + M, N + M + s)])
c.add([gates.X(i) for i in range(N + M, N + M + s)])
c.add(gates.Z(N + M + s-1).controlled_by(*range(N + M, N + M + s-1)))
c.add([gates.X(i) for i in range(N + M, N + M + s)])
c.add([gates.H(i) for i in range(N + M, N + M + s)])
return c
Tiếp theo là đoạn code để xác định trạng thái cần tìm nếu chuỗi mẫu khp nhau. Sau đó sẽ
tr v đầu ra là mạch lượng t với các biên độ của trạng thái trên trung bình bị đảo.
def oracle(N,M,s,p,equal):
controls = [3, 5, 6, 1, 2, 4, 0]
inp_list = [*range(N + M, N + M + int(s/2))]
combi = [ ]
for i in range(1, len(inp_list) + 1):
combi.extend(list(itertools.combinations(inp_list, r = i)))