Thuật toán của Shor sẽ báo trước khi


8

Đối với một số nguyên, , được xác định, với (thống nhất) được chọn ngẫu nhiên giữa và , với thứ tự của (nghĩa là nhỏ nhất với ) :a 1 N r aNa1Nrr một r1amodNrar1modN

Tại sao trong thuật toán của Shor, chúng ta phải loại bỏ kịch bản trong đó ? Ngoài ra, tại sao chúng ta không nên loại bỏ kịch bản khi ?a r / 2 = 1ar/2=1modNar/2=1modN


Điều này không hoàn toàn liên quan đến điện toán lượng tử. Chúng ta đang nói ở đây về thuật toán cổ điển. Chỉ là thuật toán của Shor cho chúng ta một cách tốt để tìm ra thứ tự, r , nhưng bạn cũng có thể làm điều này một cách kinh điển.
DaftWullie

1
@DaftWullie Mặc dù điều đó là đúng, bạn chỉ có thể biết điều này bằng cách có kiến ​​thức về thuật toán của Shor (tức là kiến ​​thức QC). Câu hỏi như đã nêu: "Tại sao chúng ta không thể thực hiện Shor trên các đầu vào này?" là về QC. Câu trả lời không chứa nhiều QC, nhưng để biết câu trả lời nào, bạn vẫn phải biết về thuật toán của Shor.
Thằn lằn rời rạc

Câu trả lời:


2

Yêu cầu mà tương đương với đòi hỏi rằng .một r - 1 0ar1modNar10modN

Chúng tôi muốn một số, , sao cho mẫu số chung lớn nhất của và là một yếu tố thích hợp của (nghĩa là một yếu tố ).b N N 1 , NbbNN1,N

Chúng ta cũng có .ar1=(ar/21)(ar/2+1)

Vì vậy, chúng tôi lấy . Chúng ta biết rằng là số nhỏ nhất sao cho , cho thấy và vì vậy (nếu không, sẽ chia ).r a r = 1b=ar/21rmột r / 21ar=1modNar/21modNN bgcd(ar/21,N)NNb

Theo danh tính của Bézout , nếu hoặc . Như chia , điều này sẽ cho rằng chia , hoặc .( a r - 1 ) x 1 + N ( a r / 2 + 1 ) x 2 = a r / 2 + 1 N a r - 1 N a r / 2gcd(ar/21,N)=1,x1,x2Z s.t. (ar/21)x1+Nx2=1(ar1)x1+N(ar/2+1)x2=ar/2+1Nar1Na rar/2+1ar/2=1modN

Điều này cho rằng yêu cầu (cùng với ràng buộc trên ) là đủ để xác định rằng mẫu số chung lớn nhất của và là đúng yếu tố của .ar/21modNrar/21NN


2

Không có kịch bản nào của vì bạn đã giả sử rằng là giá trị nhỏ nhất sao cho và nhỏ hơn .r một r1  mod  N r / 2 rar/21 mod Nrar1 mod Nr/2r

Như bạn biết tại sao bạn phải giảm , điểm mấu chốt là bạn đã tìm thấy một cái gì đó thỏa mãn đối với một số nguyên . Các yếu tố này như nếu là số chẵn. Hoặc, một trong các điều khoản chia hết cho , hoặc từng chứa các yếu tố khác nhau của . Chúng tôi muốn chúng chứa các yếu tố khác nhau để chúng tôi có thể máy tính để tìm một yếu tố. Vì vậy, chúng tôi đặc biệt muốn điều đó . Một trường hợp đã được loại bỏ như đã nêu ở trên bằng cách yêu cầu( a r - 1 ) = k N k ( a r / 2 - 1 ) ( a r / 2 + 1 ) = k N r ( a r / 2 ± 1 ) N N gcd ( a r / 2 ± 1 , N ) aar/21 mod N(ar1)=kNk(ar/21)(ar/2+1)=kNr(ar/2±1)NNgcd(ar/2±1,N)rar/2±10 mod Nrcàng nhỏ càng tốt. Khác chúng tôi phải giảm giá rõ ràng.


2

Nếu , thì là căn bậc hai tầm thường của thay vì căn bậc hai thú vị. Chúng tôi đã biết rằng là một căn bậc hai của . Chúng ta cần một căn bậc hai mà chúng ta chưa biết.ar/21ar/21- 1 111

Giả sử tôi cho bạn một số sao cho . Bạn có thể viết lại phương trình này như sau:xx2=1(modN)

x2=1+kNx21=kN(x+1)(x1)=kN

Điều quan trọng để nhận ra rằng phương trình này là tầm thường khi làx±1modN . Nếu , thì phía bên trái là vì hệ số . Điều tương tự cũng xảy ra nếu , nhưng với yếu tố khác.x10modN(x+1)0x+1

Để cả hai (x+1)(x1) trở nên thú vị (tức là mod N ), chúng ta cần x là một căn bậc hai thêm của 1 . Một căn bậc hai bên cạnh các câu trả lời rõ ràng +11 . Khi điều đó xảy ra, các yếu tố chính của N thể đi vào (x+1) hoặc tất cả đi vào (x1) , và vì vậygcd(x+1,N)đảm bảo sẽ cung cấp cho bạn một yếu tố của thay vì một bội số của .NN

Ví dụ: nếu thì là căn bậc hai phụ của 1. Và thực tế, cả gcd ( x + 1 , N ) = gcd ( 104 , 221 ) = 13gcd ( x - 1 , N ) = gcd ( 102 , 221 ) = 17 là các yếu tố của 221 . Trong khi đó, nếu chúng ta đã chọn nhàm chán căn bậc hai x = - 1 220N=221x=103gcd(x+1,N)=gcd(104,221)=13gcd(x1,N)=gcd(102,221)=17221x=1220, sau đó không gcd(x+1,N)=gcd(221,221)=221 cũng không phải gcd(x1,N)=gcd(219,221)=1 là các yếu tố của 221 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.