đồ án kỹ thuật điện điện tử Ngôn ngữ QuML và kiến trúc hệ thống Visual Quantum Studio - Pdf 27

Tóm tắt công trình
Vấn đÒ nghiên cứu các phương pháp tính toán lượng tử dựa trên các sơ đồ mạch lượng tử
đóng vai trò ngày càng tăng khi trong tương lai gần, khả năng xây dựng được máy tính lượng
tử công nghiệp trở thành hiện thực. Hiện nay các nước có nền kinh tế phát triển đã và đang
hình thành nhiều trung tâm nghiên cứu phát triển các dự án về máy tính lượng tử, các thuật
toán lượng tử dựa trên các mạch lượng tử,… Các ngành khoa học tính toán, đặc biệt là công
nghệ thông tin sẽ có những bước chuyển nhảy vọt một khi ra đời các thế hệ máy tính lượng tử
công nghiệp. Ở các nước không có tiềm lực kinh tế cao, thích hợp hơn cả để bắt kịp với các
nghiên cứu cơ bản trong lĩnh vực này là phát triển các công cụ mô phỏng dựa trên hệ máy tính
truyền thống để tìm hiểu, kiểm chứng và nghiên cứu các thuật toán, mạch lượng tử.
Để đóng góp cho việc dây dựng bộ công cụ hỗ trợ của một trung tâm nghiên cứu khoa học
về các thuật toán và mạch lượng tử, trong công trình này chúng tôi trình bày việc xây dựng
một chương trình khép kín hỗ trợ việc thiết kế mạch lượng tử và thực thi chúng trên máy ảo là
môi trường SQL Server. Về logic, chương trình được chia thành hai hệ thống nhỏ là hệ thống
thiết kế mạch và hệ thống thực thi (mô phỏng) các mạch đó trên máy ảo. Hệ thống thiết kế
mạch cung cấp những chức năng tiện lợi, dễ dàng cho người sử dụng trong việc thiết kế các
mạch lượng tử như kéo, thả đồ họa trực quan, Hệ thống mô phỏng sử dụng môi trường
SQL Server nhằm tận dụng khả năng tuyệt vời của nó về lưu trữ, xử lí dữ liệu, đặc biệt là khả
năng xử lí thông tin theo nhóm rất phù hợp với bản chất của các cổng lượng tử. Hai hệ thống
này giao tiếp với nhau thông qua ngôn ngữ được nhóm thiết kế dựa theo chuẩn XML. được
gọi là QuML (Quantum Marked up Language). Ngôn ngữ này có tính cấu trúc cao, dễ hiểu
đối với người sử dụng, dễ dàng mở rộng và đặc biệt là khả năng mô tả những mạch có cấu
trúc phức tạp. Do tính độc lập logic cao giữa các thành phần trong thiết kế, chương trình có
khả năng dễ dàng mở rộng để phát triển cho các môi trường tính toán song song, dữ liệu phân
tán, hoặc có thể sử dụng hệ quản trị dữ liệu khác phù hợp cho các môi trường tính toán với
khối lượng dữ liệu rất lớn như Oracle…,và các hệ thống tính toán chuyên dụng như: grid
computing, PC – Cluster, …để tăng khả năng về tốc độ và qui mô mô phỏng. Bên cạnh đó
tính đúng đắn của các thuật toán mô phỏng cũng được chứng minh chặt chẽ vÒ mặt toán học
trong công trình này.
1
Mục lục

(otomat lượng tử, máy Turing lượng tử ). Nhiều trung tâm nghiên cứu trên thế giới đã xuất
hiện những labo nghiên cứu về lĩnh vực này với sự đầu tư lên tới hàng tỉ USD nh tại IBM.
Tháng 11 năm 2001, IBM đã công bố thí nghiệm thành công việc chế tạo máy tính lượng tử
7-qubit, điều đó chỉ ra rằng, việc chế tạo những chiếc máy tính lượng tử công nghiệp chỉ còn
là vấn đề thời gian.
Đối với nước ta, đứng trước một lĩnh vực đầy tiềm năng nhưng cũng đầy thách thức này,
câu hỏi đặt ra là: chóng ta phải làm gì để bắt kịp với sự phát triển của thế giới? Rõ ràng
chúng ta không thể chờ cho đến khi máy tính lượng tử công nghiệp ra đời bởi điều gì sẽ xảy
ra khi những hệ thống bảo mật của quốc gia bị phá? Chính vì vậy việc đầu tư nhân lực và tiền
của vào nghiên cứu máy tính lượng tử là không thể tránh khỏi, và công việc này diễn ra càng
sớm càng tốt. Tuy nhiên việc đầu tư cho một dự án nghiên cứu chế tạo máy tính lượng là
không thực tế trong hoàn cảnh nước ta bởi nó đòi hỏi rất nhiÒu tiền của, hơn nữa nền công
nghệ và vật lý của nước ta còn nhiều hạn chế. Do đó hướng nghiên cứu chiến lược với nước ta
sẽ là tập trung nghiên cứu các thuật toán lượng tử và các mô hình tính toán lượng tử. Để thực
hiện được điều đó, việc xây dựng một chương trình mô phỏng tính toán lượng tử trên hệ máy
tính truyền thống như là một bộ công cụ trợ giúp việc nghiên cứu các thuật toán lượng tử là
điều thiết yếu. Với thực tế đó, nhóm chúng tôi đề xuất xây dựng một bộ công cụ mô phỏng
làm hạt nhân cho việc hình thành một labo nghiên cứu về máy tính lượng tử ở Việt Nam theo
một tiếp cận hoàn toàn mới.
3
1.2. Hướng giải quyết
Hiện nay trên thế giới xuất hiện rất nhiều chương trình mô phỏng tính toán lượng tử như:
labo của Kieu Tien Dung( Centre for atom optics and ultrafast spectroscopy, Swinburne
University of Technology, Howthorn 3122, Australia), Gregory David Baker( Computer
science at Macquaie University) với hướng tiếp cận dùng lập trình thủ tục, Bernhard
Oemer( Department of Theoretical Physics Technical University of Vienna) với hướng tiếp
cận dùng C/C++, chương trình jaQuzzi( www.physics.bufalo.edu/~phygons/jaQuzzi) với
hướng tiếp cận dùng Java,…
Trong nghiên cứu mô phỏng tính toán lượng tử có hai xu hướng chính: thứ nhất là viết các
chương trình mô phỏng cho từng thuật toán cụ thể, thứ hai là nghiên cứu xây dựng một bộ

công trình này chúng tôi lựa chọn SQL Server vì nó phù hợp với một labo nghiên cứu về tính
toán lượng tử ở quy mô trung bình. Khi có nhu cầu mở rộng quy mô tính toán chương trình có
thể dễ dàng chuyển đổi sang sử dụng các hệ quản trị dữ liệu khác như Oracle…. Đây là một
giải pháp hoàn toàn mới, lÝ do của sự lựa chọn này là:
+ Thuận tiện cho việc lưu trữ và quản lý dữ liệu tăng theo hàm luỹ thừa với số qubit
bởi việc lưu trữ bằng cơ sở dữ liệu đã được các hãng phần mềm lớn trên thế giới tối ưu.
+ Tạo khả năng áp dụng tính toán song song cổ điển vào mô phỏng nguyên lý song
song lượng tử, bởi việc thực hiện tính toán trên môi trường song song là rất phù hợp khi dùng
cơ sở dữ liệu.
4
+ Giảm thiểu cho người lập trình khỏi vấn đề quản lý và kiểm soát dữ liệu.
Cùng với giải pháp trên là một chương trình được xây dựng dựa vào các công nghệ hiện
đại với kiến trúc 3 tầng:
+ Hệ thống giao diện đồ hoạ thân thiện hỗ trợ tối đa việc thiết kế mạch lượng tử bằng
các thao tác kéo, thả quen thuộc. Nhờ đó có thể kiểm chứng và phát kiến các thuật toán lượng
tử trong một thời gian kỉ lục nhờ phương pháp giao diện đồ hoạ kéo thả tương tự nh các
chương trình hỗ trợ thiết kế mạch điện tử cổ điển nh Circuit Maker, Work Bend , thay cho
phương pháp tiếp cận truyền thống cho tới nay là mỗi lần muốn thử nghiệm một thuật toán
mô phỏng, người ta phải viết lại chương trình từ đầu.
+ Hỗ trợ cho việc hiểu và thực thi cần có một ngôn ngữ trung gian. Ở đây chúng tôi
xây dựng mới mét ngôn ngữ mô tả mạch, đặt tên là QuML, đặc tả toàn bộ cấu trúc mạch
lượng tử được thể hiện trên tầng giao diện, mọi sự thay đổi trên mạch hiÓn thị đều kèm theo
sù thay đổi trong kịch bản tạo bởi QuML.
+ Mọi thao tác kéo thả từ tầng giao diện thông qua ngôn ngữ trung gian được truyền
đạt tới tầng thực thi. Tầng chạy: thực thi các câu lệnh truy vấn SQL để mô phỏng các toán tử
lượng tử cơ bản, trên môi trường SQL Server thông qua sù giao tiếp với kịch bản có trong
tầng QuML.
Nhờ kiến trúc 3 tầng, chương trình có thể phát triển được với qui mô rất lớn, sử dụng tổng
hợp những công nghệ hiện đại nhất như: C#, XML, tính toán khoa học bằng phương pháp
truy vấn SQL cùng những thuật toán mới hữu hiệu. Do nhu cầu và đặc điểm của nhóm nghiên

được tổ hợp nhiều giá trị tại một thời điểm.
Trước hết ta xét quan niệm mới về qubit - đơn vị biểu diễn thông tin cơ bản trong tính toán
lượng tử.
Xét không gian Hilbert
2
£
(trường cơ sở là
£
). Nó có cơ sở trực giao là (1, 0) và (0, 1),
được ký hiệu tương ứng là
0
&
1
.
5
Định nghĩa 1.1: Một siêu trạng thái (trạng thái chồng chất – Superposition) trên 1-qubit được
biểu diễn bởi mét vectơ bất kì trong không gian Hilbert
2
£
có dạng
0 1
α β
+
với
,
α β
£∈
và thoả mãn luật phân bố xác suất
2 2
1

1

i

N
| C
i
|
2
= 1, ở đó | i
1
i
2
i
n
〉 = | i
1
〉 ⊗ | i
2
〉 ⊗ ⊗ | i
n
〉, | i
j
〉 ∈
2
£
, j=1 ,n.

Định nghĩa 1.2: Thanh ghi lượng tử n-qubit là hình thức vật lý biểu diễn khả năng của n-
qubit, cho phép đồng thời lưu một siêu trạng thái là tổ hợp tuyến tính của

trạng thái rối lượng tử (entanglement). Trạng thái này của qubit không thể phân tích thành tích
tenxơ của hai hệ thống con.
1.3.4. Nguyên lý song song lượng tử
Thanh ghi lượng tử cùng một lúc có thể lưu trữ rất nhiều trạng thái đơn lẻ khác nhau,
nhưng có một đặc điểm đáng chú ý đó là: bất kì một phép tác động nào lên một thanh ghi
lượng tử còng sẽ tác động đồng bộ lên các trạng thái mà thanh ghi đó lưu trữ (ta không thể
tách rời các trạng thái để thao tác trên chúng một cách riêng lẻ).
1.3.5. Mạch và cổng lượng tử, cổng lượng tử phổ dụng
Tính toán cổ điển được tạo nên bởi quá trình xử lý, biến đổi bit cổ điển. Đơn vị xử lý bit
được gọi là cổng logic. Bé vi xử lý được tạo nên từ hàng triệu các cổng nh vậy. Ta không cần
đi vào thiết kế bên trong của cổng mà chỉ cần biết sự tương ứng của các đầu ra với các đầu
vào.
Trong trường hợp lượng tử, đơn vị xử lý qubit được gọi là cổng lượng tử. Tác động của
chúng lên qubit còng giống nh tác động của cổng logic thông thường lên bit. Trong vật lý
6
lượng tử, các phép biến đổi đều phải là các toán tử Unita. Do đó trong mô hình toán học,
chúng ta cũng phải dùng những toán tử Unita.
Định nghĩa 1.3: Mét cổng logic lượng tử n-qubit biến đổi n-qubit được biểu diễn về mặt toán
học bởi một phép biến đổi Unita tác động lên vectơ siêu trạng thái của n-qubit đó.
Ví dô:
Cổng HADAMARD:
Dạng ma trận:
( )
( )
1
1/ 2 1/ 2
2
1
1/ 2 1/ 2
2

α β α β α β
Ta thấy rằng, khi tác động cổng Hadamard lên thanh ghi mét qubit, nó sẽ tác động đồng bé
lên cả 2 trạng thái cơ sở
0 , 1
, đó chính là do nguyên lý song song lượng tử.
Định nghĩa 1.4: Mạch lôgic lượng tử là một tập các cổng lôgic lượng tử liên kết theo một đồ
thị có hướng không chu trình, trong đó đầu ra của cổng này có thể là đầu vào của cổng kia.
Định nghĩa 1.5: Một tập cổng lượng tử G được gọi là phổ dông nếu với mọi
0
ε
>
và mọi ma
trận Unita U tác động trên số qubit bất kì, U có thể được xấp xỉ với độ chính xác
ε
bằng một
dãy cổng của G. Nói cách khác nhóm con tạo nên bởi G là trù mật trong nhóm các toán tử
Unita.
Tức là
, 0, 'U U
ε
∀ ∀ > ∃
được tạo nên bằng tích các cổng của G sao cho:

'U U
ε
− ≤
, với một chuẩn được lựa chọn cụ thể trong không
gian Hilbert.
1.3.6. Phép đo
Việc đo một qubit của siêu trạng thái S về mặt toán học được biểu diễn bởi một phép

i i i
i i i
ob C=

K
K
, kết quả 1 với xác suất
2 3
2 3
2
1
, , ,
Pr (1)
n
n
i i i
i i i
ob C=

K
K
và siêu trạng thái S sẽ sụp đổ tương ứng về một trong hai trạng thái
sau:
( )
2
2
0 1 2
, ,
1
0

K
K
Sự sụp đổ của hệ thống sau phép đo chính là sự thể hiện của nguyên lý nổi tiếng về sụp
đổ của hàm sóng.
Ví dụ: xét siêu trạng thái 2-qubit :
( )
1
00 01 11
3
+ −
. Phép đo trên qubit đầu tiên cho
kết quả 0 với xác suất 2/3, kết quả 1 với xác suất 1/3.
Nh vậy sau khi đo, siêu trạng thái sụp đổ thành
( )
1
00 01
2
+
với xác suất 2/3 và thành
trạng thái
11−
với xác suất 1/3.
1.3.7. Thuật toán lượng tử
Có thể xây dựng khái niệm thuật toán lượng tử dựa trên cơ sở mô hình máy Turing lượng
tử. Tuy nhiên về bản chất, để ngắn gọn, ta có thể xem thuật toán lượng tử được thực hiện bởi
một số bước cơ bản, mỗi bước cơ bản bao gồm một dãy các thao tác Unita kèm theo một phép
đo. Điểm đáng chú ý là nó sử dụng những ưu điểm, đặc điểm riêng của máy tính lượng tử.
Nhờ đó mà thuật toán lượng tử thật sự đã làm được những việc tưởng nh không thể đối với
những thuật toán cổ điển.
Ưu điểm chủ yếu của thuật toán lượng tử là tính chất xử lý song song: việc cổng lượng tử

8
tính đúng đắn của thuật toán mô phỏng tính toán lượng tử trên mô hình đại số quan hệ và sử
dụng ngôn ngữ SQL.
Bên cạnh việc xử lý tính toán trên cơ sở dữ liệu, để tạo ra một bộ công cụ thân thiện giúp
người dùng sử dụng VQS một cách dễ dàng, chúng tôi đã sử dụng:
+ Công nghệ .NET - là công nghệ hiện đại hỗ trợ khả năng đồ hoạ, đặc biệt là hỗ trợ
khả năng tính toán trên môi trường mạng.
+ Ngôn ngữ XML: là môi trường trung gian giữa giao diện người dùng và môi trường
tính toán trên cơ sở dữ liệu.
Kết luận:
• Trong hoàn cảnh kinh tế còn nhiều hạn chế của nước ta hiện nay, việc lựa chọn giải pháp
mô phỏng để nghiên cứu tính toán lượng tử mang nhiều ý nghĩa:
 Về kinh tế: không phải đầu tư nhiều tiền của nhưng ta vẫn có một bộ công cụ “giả lập máy
tính lượng tử” cho phép nghiên cứu mô phỏng các thuật toán lượng tử. Việc áp dụng các
công nghệ hiện đại làm giảm rất nhiều thời gian cho nhóm lập trình.
 Về mặt khoa học: sự ra đời của VQS sẽ hỗ trợ đắc lực cho các nhà khoa học trong việc
nghiên cứu, kiểm định các thuật toán lượng tử và khám phá các thuật toán mới.
 Tính thực tiễn: với những chức năng đã có, VQS hoàn toàn có thể đóng vai trò làm công
cụ đắc lực cho mét trung tâm nghiên cứu mô phỏng tính toán lượng tử nh ở nước ta. Đồng
thời VQS còng có thể là một bộ công cụ hữu Ých hỗ trợ cho các nhóm nghiên cứu về lĩnh
vực này.
 Tính chiến lược: việc hình thành một trung tâm nghiên cứu mô phỏng tính toán lượng tử
sẽ giúp chúng ta có cơ hội bắt kịp với thế giới trong lĩnh vực mới này, giúp chúng ta chủ
động đối mặt với cuộc cách mạng về khoa học tính toán do máy tính lượng tử tạo ra trong
tương lai gần.
• Với việc lựa chọn 3 công nghệ hiện đại trên, bộ công cụ VQS có khả năng cung cấp cho
các nhà nghiên cứu tính toán lượng tử nhiều tính năng hữu Ých với tốc độ xử lý nhanh,
khả năng kiểm soát dữ liệu cỡ lớn hiệu quả và an toàn, giao diện trực quan thân thiện dễ
dùng mà so với các phần mềm như Mathemetica, Mathlab thì đặc điểm này của sản phẩm
là nổi bật.

+ Loại thứ ba là những lệnh ngôn ngữ xử lý dữ liệu ( DML ), dùng để đọc lại, xoá đi hoặc thêm vào
CSDL .
+ Những lệnh ngôn ngữ kiểm soát dữ liệu ( DLC ) dùng để "giao quyền" hoặc " thu hồi quyền" xếp loại
dữ liệu .
Người sử dụng có thể gõ vào một cách trực tiếp những lệnh SQL, hoặc là thông qua các giao diện. Lệnh của
SQL không nhiều, gần giống với tiếng Anh, do đó người sử dụng có thể truy xuất nhanh những CSDL lớn mà
không cần lập trình.
SQL là ngôn ngữ truy cập và xử lý dữ liệu mà đối tác của nó là những CSDL theo mô hình quan hệ. Do vậy,
những tiếp cận tính toán lớn mà có thể ứng dụng phương pháp biểu diễn theo đại số quan hệ có thể dựa vào
SQL để thực hiện các thao tác tính toán cơ bản.
d) Các chức năng SQL
Thông qua những đặc điểm của SQL, và tuỳ theo môi trường, người sử dụng có thể thường xuyên thực hiện
các yêu cầu về dữ liệu nh :
+ Định nghĩa dữ liệu.
+ Truy vấn, gọi xem, bảo trì dữ liệu.
+ Tính toán cập nhật dữ liệu.
+ Kiểm soát việc truy xuất dữ liệu.
+ Bảo đảm sự an toàn, phân chia quyền sử dụng dữ liệu.
+ Bảo vệ sự toàn vẹn dữ liệu
.
2.2. Sự tương thích chặt chẽ giữa SQL và tính toán lượng tử
+ SQL đối xử với các bản ghi một cách bình đẳng. Nếu coi mỗi truy vấn SQL là một
đơn vị tính độ phức tạp thì với mỗi truy vấn ta có thể tác động lên tất cả các bản ghi. Do vậy,
nếu sử dụng một bản ghi của bảng để lưu một cơ sở thì ta có thể tác động đồng thời vào toàn
bộ superposition, không phân biệt giữa các cơ sở. Nh vậy giữa truy vấn CSDL và những phép
biến đổi lượng tử có sự giống nhau về mặt bản chất là tác động đồng thời lên tất cả các đối
tượng.
+ Phép JOIN cho phép kết nối hai bảng, làm tăng số cột. Ta có thể sử dụng truy vấn
này để mô phỏng phép lấy tích tensơ của hai thanh ghi - mét thao tác không thể thiếu trong
các thuật toán lượng tử.

÷ ÷
ç
÷
= = = +
ç ç
÷ ÷
ç
÷
ç ç
÷ ÷
ç
÷
ç ç
÷ ÷
ç
÷
÷ ÷
ç ç
÷
ç
-
÷ ÷
è ø
ç ç
÷ ÷
ç ç
è ø è ø
Vậy
1 1
0 0 1

÷
= = = -
ç ç
÷ ÷
ç
÷
ç ç
÷ ÷
ç
÷
ç ç
÷ ÷
ç
÷
÷ ÷
ç ç
÷
ç
- -
÷ ÷
è ø
ç ç
÷ ÷
ç ç
è ø è ø
Vậy
1 1
1 0 1
2 2
H

C C i C= +
Nh vậy, ta có tương ứng
1 1«
: Siêu trạng thái
«
Bảng quan hệ trạng thái. Các phép
biến đổi trên siêu trạng thái trở thành các phép biến đổi trên quan hệ mà ta có thể sử dụng các
câu lệnh SQL (xem phần sau).
Nhận xét:
+ Nếu siêu trạng thái có dạng:
q1 Im Re
0
0
ImC
0
ReC
1
1
ImC
1
ReC
q1 Im Re
0
0
Im 2C
0
Re 2C
1
0
Im 2C

0 0 … 0
0
ImC
0
ReC
… … … … …
1 1 … 1
Im
N
C
Re
N
C
11
U
0 1 0 0 1 1
0 1 (Im Re ) 0 (Im Re ) 1
(Im Re )
N
N N
C C C N C i C C C
C C N
+ + + = + + + +
+ +
(trong đó
2 1
n
N = -
)
thì mỗi véc tơ cơ sở

được hai cổng
,
3 3
U W
và phép đo.
i) Cổng
3
U

control1
control2
target
Trong đó:
cos(2 ) sin(2 )
sin(2 ) cos(2 )
U
πα πα
πα πα
 
=
 ÷

 

Tác động cuả
3
U
:
3
0

 ÷
 ÷  ÷
 ÷
 ÷
→ =
 ÷  ÷
 ÷
 ÷
+
 ÷  ÷
 ÷
 ÷
   
 ÷
 ÷

− +
 
 
M
O
M M
M M
Giả sử một siêu trạng thái đã được cho dưới dạng bảng quan hệ Superposition:
SQL
¾¾¾®
q1 q2 q3 Im Re
0 0 0
0
ImC

sin(2 )
πα

where q@control1=1,q@control2=1,q@target=1
Update Tam set Re=Re.
sin(2 )
πα
, Im=Im.
sin(2 )
πα

where q@control1=1,q@control2=1,q@target=0
Insert into Tam select * from Superposition
Drop table Superposition
Select q1,q2, ,qn, sum(Re) as Re, sum(Im) as Im into Superposition from Tam group by q1,q2, ,qn
Drop table Tam
ii) Cổng
3
W

control1
cotrol2
target
Trong đó:
2
1 0
0
i
W
e

πα
πα
 
 
   
 ÷
 ÷
 ÷  ÷
 ÷
 ÷
 ÷  ÷
 ÷
→ =
 ÷
 ÷  ÷
 ÷
 ÷
 ÷  ÷
 ÷
 ÷
 ÷  ÷
 ÷
 ÷
   
 
 
O
M
M M
O

6 7
Re sin(2 ) Re (2 )C C cos
πα πα
− +
q1 q2 q3 Im Re
0 0 0
0
ImC
0
ReC

1 1 0
6
ImC
6
ReC
1 1 1
7
ImC
7
ReC
13
Thực hiện bằng truy vấn SQL:
Alter table Superposition add tam
Update Superposition set tam=Im
Update Superposition set Im=
Imcos(2 ) Resin(2 )
πα πα
+
Re=

ta dùng phương pháp qui nạp: sử dụng thêm phép And của 2 bit đầu tiên
bằng TOFFOLI( CCNOT), ghi kết quả lên bit phô. Sau đó áp dụng
,
1 1
U W
n n- -
ta sẽ thu
được
,U W
n n
.
iii) Phép And
a a
b b c c
Å
ab
Dạng bảng:SQL
¾¾¾®q1 q2 q3 Im Re
0 0 0
0
ImC

7
ImC
7
ReC
a b c Im Re
0 0 0
0
ImC
0
ReC

1 1 1
6
ImC
6
ReC
1 1 0
7
ImC
7
ReC
14
Nhận xét: Bit c bị lật trạng thái khi và chỉ khi a = b = 1.
Thực hiện bằng truy vấn SQL:
Update Superposition set q@target=1-q@target
where q@control1=1,qa@control2=1 .
Nhận xét rằng, để thực hiện tính toán, nhiều khi phải sử dụng 2 thanh ghi có tương tác
(correlation) với nhau. Do vậy cần phải mô phỏng phép lấy tích tensor 2 thanh ghi.
iv) Mô phỏng phép lấy tích tensơ hai thanh ghi
Xét phép lấy tích tensơ hai thanh ghi có trạng thái sau đây:

00 0 00 0 00 0 00 1 00 0 11 1
M
C C C C C C
⊗ + ⊗ + + ⊗
+
+
0 1
11 1 00 0 11 1 00 1 11 1 11 1
N N N M
C C C C C C
⊗ + ⊗ + + ⊗
Dưới dạng bảng, Reg1 là
Reg2 là
Reg1⊗ Reg2

Thực hiện bằng truy vấn SQL:
Select * into Tensor from Reg1cross join Reg2
Alter table Tensor add Im,Re
Update Tensor set Im=Im1.Re2+Im2.Re1
Re=Im1.Im2-Re1.Re2
Alter table Tensor drop Im1,Im2,Re1,Re2.
Đến đây ta đã chứng minh được mọi phép biến đổi Unita trong tính toán lượng tử đều có thể
mô phỏng đúng đắn bởi ngôn ngữ SQL trên cơ sở dữ liệu. Để hoàn thiện chứng minh, ta cần
chứng minh sự đúng đắn với phép đo.
v) Phép đo
Phép đo là phép tác động lên một tập các qubit của một thanh ghi lượng tử. Nếu gọi
i
1
,i
2

q21 q22 … q2m Im2 Re2
0 0 … 0
0
Im2C
0
Re 2C
… … … … …
1 1 … 1
Im2
M
C
Re2
M
C
q11 … q1n q21 q2m Im Re
0 … 0 0 0
0 0 0 0
Im1 Re 2 Im 2 Re1C C C C+
0 0 0 0
Im1 Im2 Re1 Re2C C C C-
… … … …
1 … 1 1 1
Im1 Re2 Im 2 Re1
N M M N
C C C C+
Im1 Im 2 Re1 Re 2
N M N M
C C C C-
15
b2: điền toàn bộ 2

Alter Table CollectingTable
Add
j
i
q
int
j := j + 1
End
Tiếp theo ta thực hiện điền 2
k
cơ sở vào bảng CollectingTable bằng thủ tục InsertBases:
Set n = 0
While(n < power(2,k))
Begin
exec BiGenerate n,k,valuestr output
IinsertIinto CollectingTable
Values valuestr
n: = n + 1
End
(Thủ tục BiGenerate sẽ sinh ra số nhị phân k chữ số từ số n đồng thời biến số nhị phân đó
thành dạng xâu chuẩn để đưa vào câu lệnh Insert.)
Để thực hiện bước 3 điền giá trị vào trường Prob, ta thực hiện thủ tục
InsertCollectingTable:
Alter table superposition
Add prob As square(re) + square(im)
Update collectingtable
Set Prob = (Select sum(s.Prob) From Superposition s
Where
1 1
. .

Adđ ind As
1 2
1 2
.2 .2
k
k k
i i i
q q q
− −
+ + +
L
Declare curInd
Scroll Cursor For
Select ind
From tblmaxrow
Open curInd
Select row = count(Prob)
From tblmaxrow
exec RandId = random row
F etch Absolute RandId From curInd Into i
Delete From tblmaxrow
Where ind <> i
End
(Hàm random(n) sẽ sinh một số nguyên ngẫu nhiên nằm trong khoảng [1,n])
Cuối cùng ta thực hiện thủ tục Measure để thực hiện bước 5:
Delete From superposition s
From tblmaxrow t
Where (
1 1
. .

Thực hiện:
Xét superposition tổng quát:

{ }
1 2 1 1 1 2 1 1
1
( ) 0,1
1 2 1 1
0 1 2 1 1 1 1 2 1 1
( 0 1 )
k k n k k n
n
i i i i i
k k n
i i i i i k k n i i i i i k k n
c i i i i i c i i i i i
− + − +


− +
− + − +
+

Cổng HADAMARD tác động trên qubit thứ k của hệ thống n qubit gây nên sự biến
đổi nh sau:

1 2 1 1 1 2 1 1
0 1 2 1 1 1 1 2 1 1
0 1
k k n k k n

Update Superposition set q@target=1- q@target
Update Superposition set Im=Im
/ 2
,Re=Re
/ 2

Update Tam set Re=-Re
/ 2
, Im=-Im
/ 2

where q@target=1
Update Tam set Re=Re/
/ 2
, Im=Im
/ 2

where q@target=0
Insert into Tam select * from Superposition
Drop table Superposition
Select q1,q2, ,qn, sum(Re) as Re, sum(Im) as Im into Superposition from Tam group by q1,q2, ,qn
Drop table Tam
ii) Cổng NOT
Dạng ma trận:
0 1
1 0
 
 ÷
 
Hoạt động: Xét superposition tổng quát:

H
no
t
18
1 2 1 1 1 2 1 1
1 1 2 1 1 1 1 2 1 1
1 0
− + − +
− + − +

k k n k k n
i i i i i k k n i i i i i k k n
c i i i i i c i i i i i
Mô phỏng bằng SQL:
Update @table set qk=1-qk
iii) Cổng CNOT
Dạng ma trận:
1
1
0 1
1 0
 
 ÷
 ÷
 ÷
 ÷
 
Hoạt động: Xét superposition tổng quát:
{ }
1 2 1 1 1 2 1 1

i
=1

1 2 1 1 1 2 1 1
1 2 1 1 1 2 1 1

k k k n k k k n
i i i i i i k k k n i i i i i i k k k n
c i i i i i i c i i i i i i
− + − +
− + − +

nếu
t
i
=0
Mô phỏng bằng SQL:
Update @table set qk=1-qk where qt=1
Nhận xét: Vai trò của định lý cơ bản có ý nghĩa thực tiễn lớn vì các cổng phổ dụng cơ bản
được biểu diễn sang câu lệnh SQL đưa vào dưới dạng biên dịch sẵn (Stored Procedure) giúp
tăng tốc quá trình tính toán mô phỏng trên môi trường dữ liệu lớn hướng mạng, song song,
phân tán.
19
Chương 3. Ngôn ngữ QuML và kiến trúc hệ thống Visual
Quantum Studio (VQS)
Phần này dành cho việc trình bày về kiến trúc 3 tầng của sản phẩm, trong đó sẽ tập trung
vào ngôn ngữ mô tả mạch lượng tử dựa trên chuẩn XML do chúng tôi thiết kế, được đặt tên là
QuML.
3.1. Kiến trúc hệ thống Visual Quantum Studio
Hệ thống VQS được chia thành 2 hệ thống con và gồm 3 tầng:

- Thiết lập giá trị Alpha, Beta.
- Chọn, xoá
3.2.3. QuRegister
Thuộc tính :
- Name
- Text
- Danh sách QuBit
- Circuit chứa nó
- Inside / Outside
Phương thức :
- Đổi tên, đổi text
- Đổi kiểu Inside <-> Outside
- Xoá, thêm bit
3.2.4. Operator
Thuộc tính :
- Name
- Text
- Danh sách QuBit
- Linkbits
- State
Phương thức:
- Đổi tên, đổi text.
- Đổi kiểu nội dung Linkbit.
- Xoá, sửa.
3.3. Ngôn ngữ mô tả mạch lượng tử QuML (Quantum Marked up Language)
3.3.1. Giới thiệu về XML
XML là một đề xuất của tổ chức World Wide Web Consortium (W3C), một nhóm đa
công ty đã định nghĩa XHTML và tiền thân của ngôn ngữ này là HTML. XML là một phương
tiện mang các dữ liệu khả dụng tới máy tính cá nhân và là một định dạng dữ liệu tổng quát –
nã cung cấp những thẻ đánh dấu cần thiết. Vì mã nguồn của các ngôn ngữ được định dạng

+ Mô tả các phép đo.
+ Mô tả các qubit theo tập hợp các thanh ghi.
+ Mô tả giao diện riêng của từng loại cổng phức hợp.
+ Có khả năng cho phép khai báo những kiểu cổng phức hợp mới dựa trên các cổng có
sẵn (built in) và các cổng phức hợp tự tạo khác.
+ Tất cả các tài liệu đều bắt đầu bằng thẻ <QuML></QuML>
3.3.3 Những đối tượng cần mô tả của ngôn ngữ
QuCircuit, QuRegister, QuBit, QuGate, QuObserver,
3.3.4 Các khai báo cho các đối tượng này
a. QuSpace
Không gian tên lượng tử, trong không gian tên lượng tử ta có thể định nghĩa các cổng
hoặc các không gian tên lượng tử cấp thấp của nó.
Cấu trúc của các không gian tên: NameSpace1.NameSpace2
Khai báo không gian tên lượng tử có thể là khai báo tuyệt đối hoặc khai báo tuần tự.
VD:
<QuSpace Name=”Physics”>
<QuSpace Name=”Quantum”>
<GateType Name=””></GateType>
</QuSpace>
</QuSpace>
b. QuCircuit
Tạo ra một mạch lượng tử để tính toán
Lệnh: <QuCircuit Name=”Tên mạch” >
<Interface>
<Outside></Outside>
<Inside></Inside>
</Interface>
<Architecture></Architecture>
</QuCircuit>
22

Lệnh tổng quát để tạo một cổng phức
<QuGate Type=”Tên kiểu cổng” Name=”Tên cục bộ của cổng”>
<LinkedBits RegName=”Tên thanh ghi”>danh sách các bit cục bộ của thanh ghi đó</LinkedBits>
</QuGate>
Tên thanh ghi trong LinkedBits là tên thanh ghi trong bối cảnh cục bộ của hệ thống hoặc
component.
Sự nối này theo thứ tự nào? Theo thứ tự được khai báo trong phần interface. Bit nào được
khai báo trước thì có thứ tự cục bộ ở trước. Khi kết nối thì SystemID của mapped bit sẽ được
chuyển vào các lệnh thực hiện.
g. Observer
Tạo ra mét quan sát một qubit hoặc nhiều qubit trong hệ thống.
Lệnh để tạo một phép đo:
<Observer Name=”Tên hiển thị trên mạch của phép đo”>
<LinkedBits RegName=”Tên thanh ghi”>danh sách các bit cục bộ của thanh ghi đó</LinkedBits>
Tên của mỗi phép đo yêu cầu phải là duy nhất trong bối cảnh cục bộ.
Mô tả cấu trúc một câu lệnh khai báo kiểu cổng phức hợp với các kiểu cổng cơ bản được
chấp nhận là: NOT, CNOT, HADAMAR, TOFFOLI, CPSHIFT (controlled phase shift),…
dựa trên kết quả nghiên cứu tập cổng phổ dụng và các cổng hay sử dụng trong các thuật toán
lượng tử.
Các thông số cho những cổng cơ bản: được khai báo kèm với thẻ QuGate nh một thuộc
tính của thẻ.
23
VÝ dô: Cổng CPSHIFT cần thêm thông số về góc quay Phase
Những ví dụ mạch cơ bản.
Ví dô 1: Mạch không có các component phức, không có QuReg cục bộ
Mạch cộng hai sè hai bit: AB + CD = EFG
<?xml version="1.0"?>
<QuML>
<QuSpace Name="Test">
<QuCircuit Name="ADDER_2BITS">

<QuGate Type="TOFFOLI">
<LinkedBits RegName="Reg1">0, 2</LinkedBits>
<LinkedBits RegName="Result">0</LinkedBits>
</QuGate>
<QuGate Type="CNOT">
<LinkedBits RegName="Reg1">0, 2</LinkedBits>
</QuGate>
<QuGate Type="TOFFOLI">
A
B
C
D
0
0
0
A
B
C
D
E
F
G
24
: TOFFOLI
: CNOT
<LinkedBits RegName="Reg1">2</LinkedBits>
<LinkedBits RegName="Result">1, 0</LinkedBits>
</QuGate>
<QuGate Type="CNOT">
<LinkedBits RegName="Reg1">2</LinkedBits>

<Item Input="2" Output="1"></Item>
</Data>
</OracleType>
<QuCircuit Name="TestOracle">
<Interface>
<Outside>
<QuRegister Name="x">
<QuBit Text="A" Name="0" Alpha="1" Beta="0"/>
<QuBit Text="B" Name="1" Alpha="1" Beta="0"/>
</QuRegister>
<QuRegister Name="f">
<QuBit Text="C" Name="0" Alpha="1" Beta="-1"/>
</QuRegister>
</Outside>
25
x x
y yf(x)
f


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status