Algoritma Shor peringatan ketika

8

Untuk integer, , harus factorised, dengan (seragam) yang dipilih secara acak antara dan , dengan urutan (yaitu, yang terkecil dengan ) :Na1NramodNrar1modN

Mengapa itu dalam algoritma Shor kita harus membuang skenario di mana ? Juga, mengapa kita tidak membuang skenario ketika ?ar/2=1modNar/2=1modN

Tech Solver
sumber
Ini tidak sepenuhnya berkaitan dengan komputasi kuantum. Kita berbicara di sini tentang algoritma klasik. Hanya saja algoritma Shor memberi kita cara yang baik untuk menemukan urutan, , tetapi Anda dapat melakukan ini secara klasik juga. r
DaftWullie
1
@DaftWullie Meskipun itu benar, Anda hanya dapat mengetahui ini dengan memiliki pengetahuan tentang algoritma Shor (yaitu pengetahuan QC). The Pertanyaan seperti yang dinyatakan: "? Mengapa kita tidak bisa melakukan Shor pada input ini" tentang QC. The jawabannya tidak mengandung banyak QC, tapi untuk mengetahui apa yang menjawab untuk memberikan, Anda tetap harus tahu tentang algoritma Shor.
Kadal diskrit

Jawaban:

2

Persyaratan bahwa setara dengan mensyaratkan bahwa .ar1modNar10modN

Kami menginginkan angka, , sedemikian sehingga penyebut umum dan adalah faktor tepat (yaitu faktor ).bbNN1,N

Kami juga memiliki .ar1=(ar/21)(ar/2+1)

Jadi, kita ambil . Kita tahu bahwa adalah angka terkecil sehingga , menunjukkan bahwa dan begitu (seperti sebaliknya, akan membagi ).b=ar/21rar=1modNar/21modNgcd(ar/21,N)NNb

Dengan identitas Bézout , jika , atau . Sebagai membagi , ini memberikan bahwa membagi , atau .gcd(ar/21,N)=1,x1,x2Z s.t. (ar/21)x1+Nx2=1(ar1)x1+N(ar/2+1)x2=ar/2+1Nar1Nar/2+1ar/2=1modN

Ini memberikan bahwa persyaratan (di samping batasan pada ) cukup untuk menentukan bahwa penyebut umum terbesar dari dan adalah tepat faktor .ar/21modNrar/21NN

Mithrandir24601
sumber
2

Tidak ada skenario karena Anda telah mengasumsikan bahwa adalah nilai terkecil sehingga , dan lebih kecil dari .ar/21 mod Nrar1 mod Nr/2r

Seperti Anda mengapa Anda harus mendiskon , intinya adalah bahwa Anda telah menemukan sesuatu yang memuaskan untuk beberapa integer . Faktor-faktor ini sebagai jika adalah genap. Entah, salah satu istilah dapat dibagi oleh , atau masing-masing berisi faktor berbeda . Kami ingin mereka mengandung faktor yang berbeda sehingga kami dapat komputer untuk menemukan faktor. Jadi, kami secara khusus ingin bahwa . Satu kasus telah dieliminasi sebagaimana disebutkan di atas dengan mensyaratkanar/21 mod N(ar1)=kNk(ar/21)(ar/2+1)=kNr(ar/2±1)NNgcd(ar/2±1,N)ar/2±10 mod Nrmenjadi sekecil mungkin. Yang lain kita harus diskon secara eksplisit.

DaftWullie
sumber
2

Jika , maka adalah akar kuadrat sepele dari bukannya akar kuadrat yang menarik. Kita sudah tahu bahwa adalah akar kuadrat dari . Kita membutuhkan akar kuadrat yang belum kita ketahui.ar/21ar/2111

Misalkan saya memberi Anda angka sedemikian rupa sehingga . Anda dapat menulis ulang persamaan ini sebagai:xx2=1(modN)

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

Hal utama yang harus menyadari adalah bahwa persamaan ini adalah sepele ketika adalahx±1modN . Jika , maka sisi kiri adalah karena faktor . Hal yang sama terjadi jika , tetapi dengan faktor lainnya.x10modN(x+1)0x+1

Agar menarik dan menjadi menarik (yaitu mod -nol ), kita perlu untuk menjadi akar kuadrat ekstra . Root kuadrat di samping jawaban dan jelas . Ketika itu terjadi, tidak mungkin faktor prima untuk semua masuk ke atau semua masuk ke , sehingga dijamin memberi Anda faktor dari bukan kelipatan dari .(x+1)(x1)Nx1+11N(x+1)(x1)gcd(x+1,N)NN

Sebagai contoh, jika maka adalah akar kuadrat tambahan dari 1. Dan memang, keduanya dan adalah faktor dari . Sedangkan jika kita telah mengambil akar kuadrat membosankan , maka tidak juga atau adalah faktor .N=221x=103gcd(x+1,N)=gcd(104,221)=13gcd(x1,N)=gcd(102,221)=17221x=1220gcd(x+1,N)=gcd(221,221)=221gcd(x1,N)=gcd(219,221)=1221

Craig Gidney
sumber