Kompleksitas anjak di bidang angka

25

Apa yang diketahui tentang kompleksitas komputasi bilangan bulat anjak di bidang bilangan umum? Lebih spesifik:

  1. Melalui bilangan bulat, kami mewakili bilangan bulat melalui ekspansi binernya. Apa representasi analog dari bilangan bulat di bidang bilangan umum?
  2. Apakah diketahui bahwa keutamaan atas bidang angka ada dalam P atau BPP?
  3. Algoritma apa yang paling dikenal untuk memfaktorkan bidang angka? (Apakah algoritma dan (rupanya) diperluas dari ?) Di sini, factoring mengacu pada menemukan beberapa representasi dari angka (diwakili oleh bit) sebagai produk bilangan prima.expnexpn1/3Zn
  4. Apa kompleksitas menemukan semua faktorisasi bilangan bulat di bidang angka? Menghitung berapa banyak faktorisasi berbeda yang dimilikinya?
  5. Lebih dari diketahui bahwa memutuskan apakah angka yang diberikan memiliki faktor dalam interval adalah NP-hard. Di atas ring bilangan bulat dalam bidang angka, dapatkah itu menjadi kasus yang menemukan jika ada faktor prima yang normanya dalam interval tertentu sudah NP-hard? Z[a,b]
  6. Apakah anjak dalam bidang angka di BQP?

Komentar, motivasi, dan pembaruan.

Tentu saja fakta bahwa faktorisasi tidak unik pada bidang angka sangat penting di sini. Pertanyaan (terutama bagian 5) dimotivasi oleh posting blog ini melalui GLL (lihat komentar ini ), dan juga oleh pertanyaan TCSexchange sebelumnya. Saya mempresentasikannya juga di blog saya di mana Lior Silverman menyajikan jawaban yang menyeluruh .

Gil Kalai
sumber
dapatkah kamu memberi contoh bagaimana anjak di bidang berbeda dengan anjak lurus bilangan bulat?
vzn
2
Untuk (0): Saya kira biasanya bidang angka direpresentasikan sebagai mana adalah polinomial yang tidak dapat direduksi. Kemudian, elemen adalah tuple of pairs mana . Ini berarti bahwa elemen Anda adalah . KQ[ξ]/φφK((n0,d0),(n1,d1),,(nδ1,dδ1))δ=deg(φ)n0/d0+n1ξ/d1++nδ1ξδ1/dδ1
Bruno
2
@ Gil Pernahkah Anda melihat buku ini sebelumnya? springer.com/mathematics/numbers/book/978-3-540-55640-4 Saya tidak memiliki akses ke salinan saya saat ini (meskipun saya akan kembali dalam beberapa hari, dan akan memeriksa ini). Saya akan melihat apakah ada sesuatu yang ditulis tentang faktorisasi dalam (i) bidang bilangan aljabar, atau (ii) domain Dedekind, dengan nomor kelas> 1.
Daniel Apon
4
@ vzn: Tanpa menaruh kata-kata di mulut Gil, saya cukup yakin maksudnya ekstensi beralasan yang terbatas (persis seperti yang Anda tautkan). Ketika dia mengatakan "memfaktorkan dalam bidang seperti itu", saya cukup yakin dia berarti memfaktorkan dalam cincin bilangan bulat bidang tersebut. Halaman wikipedia yang sama dengan yang Anda tautkan memiliki bagian pada lingkaran bilangan bulat dalam bidang angka aljabar.
Joshua Grochow
1
@ vzn Saringan bidang angka menggunakan bidang angka untuk faktor bilangan bulat.
Yuval Filmus

Jawaban:

14

Jawaban berikut awalnya diposting sebagai komentar di blog Gil

(1) Misalkan menjadi bidang angka, di mana kita menganggap memiliki polinomial minimal . Satu kemudian dapat mewakili unsur-unsur dari cincin integer sebagai polinomial dalam atau dalam hal basis integral - keduanya setara.K=Q(α)αfZ[x]OKα

Sekarang memperbaiki seperti pada (1) ada pengurangan polinomial-waktu dari masalah atas ke masalah di . Untuk memverifikasi bahwa perhitungan (misalnya memotong ideal dengan atau memfaktorkan polinomial mod ) dapat dilakukan dalam waktu polinomial, lihat buku Cohen yang dirujuk dalam jawaban sebelumnya.KKQZp

Sebagai perhitungan awal untuk setiap prime rasional yang membagi diskriminan (yaitu diskriminan ), temukan semua bilangan prima dari terletak di atas .pαfOKp

(2) Untuk pengujian awal, diberikan biarkan dibuat sedemikian rupa sehingga (ini dapat dihitung dalam waktu polinomial dan jumlah bit adalah polinomial dalam input). Periksa dalam waktu polinomial apakah prima. Jika tidak maka tidak prima. Jika ya maka temukan bilangan prima dari terletak di atas baik dari prakomputasi atau dengan memfaktorkan mod . Bagaimanapun jika adalah prima itu harus salah satu bilangan prima tersebut.aOKpZaZ=pZppaOKpfpa

(3a), (6a) Untuk memfaktorkan ke dalam bilangan prima, diberikan temukan normalnya . Sekali lagi ini dapat ditemukan dalam waktu polinomial dan akibatnya tidak terlalu besar. Faktor dalam (baik secara klasik atau menggunakan algoritma Shor, tergantung pada pengurangan yang Anda inginkan). Ini memberikan daftar bilangan prima rasional yang membagi , dan karenanya seperti pada 2 kita dapat menemukan daftar bilangan prima dari membagi . Sejak ini memberikan daftar bilangan prima yang membagiaOKy=NQK(a)=[OK:a]yZyOKya|yOKa. Akhirnya, mudah untuk menentukan eksponen di mana prime membagi ideal yang diberikan.

(3b), (6b) Tapi Gil ingin faktorisasi menjadi irreducible, bukan ke bilangan prima. Ternyata dengan faktorisasi utama adalah mungkin untuk secara efisien membangun satu faktorisasi menjadi elemen yang tidak dapat direduksi dari . Untuk ini biarkan menjadi nomor kelas, dan perhatikan bahwa dimungkinkan untuk secara efisien menghitung kelas ideal dari suatu ideal yang diberikan. Sekarang untuk menemukan pembagi tak tereduksi pilih cita-cita utama (mungkin dengan pengulangan) dari faktorisasixOKxOKhKxhKx. Dengan prinsip lubang-merpati beberapa bagian dari yang berlipat ganda dengan identitas dalam kelompok kelas; menemukan subset minimal seperti itu. Produknya kemudian merupakan cita-cita utama yang dihasilkan oleh elemen yang tidak dapat direduksi. Bagi dengan elemen ini, hapus cita-cita yang relevan dari faktorisasi dan ulangi. Jika faktorisasi memiliki kurang dari elemen maka hanya mengambil subset minimal dari semua faktor.xhK

(4) Saya pikir itu mungkin untuk menghitung faktorisasi menjadi irreducible, tapi ini sedikit tambahan kombinatorik - tolong beri saya waktu untuk menyelesaikannya. Di sisi lain, menentukan semuanya tidak menarik dalam konteks algoritma faktorisasi sub-eksponensial karena ada secara umum banyak faktorisasi seperti itu.

(5) Saya tidak tahu.

Lior Silberman
sumber
5

Seperti disebutkan oleh Daniel, Anda dapat menemukan beberapa informasi dalam buku A Course in Computational Algebraic Number Theory ( tautan ).

Secara khusus, ada beberapa cara untuk mewakili elemen bidang angka. Biarkan menjadi bidang angka dengan a derajat- polinomial tak tereduksi monic dari . Biarkan menjadi sembarang root dari . Representasi standar yang disebut elemen adalah tupel mana , dan , sedemikian sehinggaK=Q[ξ]/φφnZ[ξ]θφαK(a0,,an1,d)aiZd>0gcd(a0,,an1,d)=1

α=1di=0n1aiθi.
Bruno
sumber