Membuktikan (dalam) keterlacakan dari pengulangan utama Nth ini


18

Sebagai berikut dari pertanyaan saya sebelumnya , saya telah bermain dengan hipotesis Riemann sebagai soal matematika rekreasi. Dalam prosesnya, saya sampai pada pengulangan yang agak menarik, dan saya ingin tahu tentang namanya, pengurangannya, dan ketertelusurannya terhadap solvabilitas kesenjangan antara bilangan prima.

Singkatnya, kita dapat mendefinisikan kesenjangan antara setiap bilangan prima sebagai pengulangan bilangan prima kandidat sebelumnya . Misalnya, untuk basis kami , bilangan prima berikutnya adalah:hal0=2

hal1=min{x>hal0-cos(2π(x+1)/hal0)+1=0)}

Atau, seperti yang kita lihat dengan merencanakan ini : hal1=3 .

Kami dapat mengulangi proses untuk n primes dengan mengevaluasi setiap kandidat prime berulang ke depan. Misalkan kita ingin mendapatkan prime berikutnya, hal2 . Fungsi kandidat kami menjadi:

hal2=min{x>hal1fhal1(x)+((-cos(2π(x+1)/hal1)+1)(-cos(2π(x+2)/hal1)+1))=0}

Dimana:

fhal1(x)=-cos(2π(x+1)/hal0)+1 , seperti di atas.

Sangat mudah untuk melihat bahwa setiap fungsi komponen hanya menjadi nol pada nilai integer, dan sama mudahnya untuk menunjukkan bagaimana ini menangkap hubungan berbentuk AND dan XOR secara cerdik, dengan mengeksploitasi properti penambahan dan perkalian dalam konteks sistem trigonometri. persamaan.

Perulangan menjadi:

fp0=0p0=2fpn(x)=fpn1(x)+k=2pn1(cos(2π(x+k1)/pn1)+1)pn=min{x>pn1fpn(x)=0}

... di mana seluruh masalah bergantung pada apakah kita dapat mengevaluasi min operator atas fungsi ini dalam waktu polinomial. Ini, pada dasarnya, adalah generalisasi dari Saringan Eratosthenes .

Bekerja dengan kode Python untuk menunjukkan pengulangan:

from math import cos,pi

def cosProduct(x,p):
    """ Handles the cosine product in a handy single function """
    ret = 1.0
    for k in xrange(2,p+1):
        ret *= -cos(2*pi*(x+k-1)/p)+1.0
    return ret

def nthPrime(n):
    """ Generates the nth prime, where n is a zero-based integer """

    # Preconditions: n must be an integer greater than -1
    if not isinstance(n,int) or n < 0:
        raise ValueError("n must be an integer greater than -1")

    # Base case: the 0th prime is 2, 0th function vacuous
    if n == 0:
        return 2,lambda x: 0

    # Get the preceding evaluation
    p_nMinusOne,fn_nMinusOne = nthPrime(n-1)

    # Define the function for the Nth prime
    fn_n = lambda x: fn_nMinusOne(x) + cosProduct(x,p_nMinusOne)

    # Evaluate it (I need a solver here if it's tractable!)
    for k in xrange(p_nMinusOne+1,int(p_nMinusOne**2.718281828)):
        if fn_n(k) == 0:
            p_n = k
            break

    # Return the Nth prime and its function
    return p_n,fn_n

Contoh cepat:

>>> [nthPrime(i)[0] for i in range(20)]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]

Masalahnya adalah, saya sekarang berada di atas kepala saya, baik secara matematis maupun sebagai ilmuwan komputer. Secara khusus, saya tidak kompeten dengan analisis Fourier , dengan mendefinisikan sampul seragam , atau dengan bidang kompleks pada umumnya, dan saya khawatir bahwa pendekatan ini salah atau menyembunyikan kengerian dari masalah 3SAT yang mengangkatnya menjadi Kelengkapan NP.

Jadi, saya punya tiga pertanyaan di sini:

  1. Dengan pengulangan singkat saya di atas, apakah mungkin untuk secara deterministik menghitung atau memperkirakan lokasi nol dalam waktu dan ruang polinomial?
  2. Jika ya atau tidak, apakah ia menyembunyikan subproblem lain yang akan membuat solusi polytime atau polyspace menjadi sulit?
  3. Dan jika dengan beberapa keajaiban (1) dan (2) bertahan, peningkatan pemrograman dinamis apa yang akan Anda lakukan dalam memuaskan perulangan ini, dari level tinggi? Jelas, iterasi pada bilangan bulat yang sama melalui beberapa fungsi tidak elegan dan cukup boros.

Dan bagi mereka yang masih di sini terlepas dari dinding teks saya: Saya tidak yakin apakah ini mengurangi dirinya ke Riemann zeta, sehingga memberikan kompleksitas yang sama. Tapi saya tidak percaya itu.
MrGomez

1
1) Tag apa yang Anda inginkan? Anda dapat membuatnya sendiri hanya dengan menggunakannya. 2) Tolong beri definisi umum untuk , yaitu apa itu ? 3) Jika Anda tidak mendapatkan jawaban tentang hal ini setelah seminggu atau lebih, Anda mungkin ingin memindahkannya begitu cstheory.SE. f ( p n )ff(haln)
Raphael

1
Saya tidak mengikuti semua yang ada di pos Anda. Saya kira maksud Anda NP-lengkap bukan NP. Secara umum membuktikan bahwa sejumlah fungsi teoretis NP-lengkap adalah tugas yang cukup sulit karena mereka sering kekurangan / menyembunyikan struktur kombinatorial yang akan memungkinkan kita untuk merancang gadget untuk pengurangan.
Kaveh

1
Revisi selesai. Pasti ada masalah lain yang mengintai, tetapi representasi asli saya agak melenceng. Saya harus berkonsultasi dengan diri saya yang lebih muda 24 jam dan memberinya penyegaran tentang definisi . Bagaimanapun, terima kasih atas kesabaran dan suntingan Anda sejauh ini. Tag saat ini juga sekarang memuaskan saya. :)f(x)
MrGomez

Mengenai , apakah tidak cukup untuk "memeriksa" semua bilangan prima yang lebih kecil dibandingkan dengan semua bilangan yang lebih kecil? f
Raphael

Jawaban:


1

Makalah berikut menunjukkan bahwa PRIMES ada di P (juga memenangkan penghargaan Gödel pada 2006):

http://www.cse.iitk.ac.in/users/manindra/algebra/primality_v6.pdf

Dengan menetapkan solusi prosedur minimalisasi prima N ke algoritma AKS PRIMES (modulo a subtraction), kita dapat secara efektif mendapatkan solusi yang dapat ditelusuri ke relasi perulangan (jika Anda dapat membuktikan bahwa celah utama diberikan oleh relasi perulangan).

Kode sumber dapat ditemukan di internet. Saya tidak menunjuk mereka di sini karena saya tidak memeriksanya secara pribadi.

Namun demikian, kita mungkin masih memiliki batas atas untuk memeriksa semua angka ...n


1
Halaman Rosettacode benar-benar salah nama. Ini bukan tes primitif AKS, dan merupakan pernyataan kembali pembagian percobaan oleh semua bilangan bulat kurang dari n. Di sisi lain, mencatat bahwa keutamaan ada di P dan melihat apakah hal itu menjelaskan pertanyaan awal layak ditanyakan.
DanaJ

Poin bagus ... Saya akan memperbaikinya ...
user13675

1
Primes dalam P tidak menyiratkan bahwa kita dapat menghasilkan bilangan prima secara deterministik dalam waktu polinomial. Ini masalah yang sulit terbuka. ( adalah fungsi eksponensial dalam ukuran input yaitu .) lgnnlgn
Kaveh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.