Kami tertarik pada perkiraan aditif ke # 3SAT. yaitu diberi 3CNF ϕ pada n variabel menghitung jumlah tugas yang memuaskan (sebut ini a ) hingga kesalahan aditif k .
Berikut adalah beberapa hasil dasar untuk ini:
Kasus 1: k=2n−1−poly(n)
Di sini ada algoritma waktu-deterministik: Misalkan . Sekarang evaluasi pada input sembarang (misal input pertama secara leksikografis ). Misalkan dari input ini memenuhi . Kemudian kita tahu karena setidaknya ada tugas yang memuaskan dan karena setidaknya ada tugas yang tidak memuaskan. Panjang interval ini adalah . Jadi jika kita menampilkan titik tengah ini berada dalamm=2n−2k=poly(n)ϕmmℓϕa≥ℓℓa≤2n−(m−ℓ)m−ℓ2n−(m−ℓ)−ℓ=2k2n−1−m/2+ℓk dari jawaban yang benar, seperti yang dipersyaratkan.
Kasus 2: k=2n/poly(n)
Di sini kami memiliki algoritma waktu-acak: Evaluasi pada titik acak . Biarkan dan . Kami menghasilkan . Agar ini memiliki kesalahan paling banyak kita perlu yang setara denganDengan ikatan Chernoff , sepertiϕmX1,⋯,Xm∈{0,1}nα=1m∑mi=1ϕ(Xi)ε=k/2n2n⋅αk
k≥|2nα−a|=2n|α−a/2n|,
|α−a/2n|≤ε.P[|α−a/2n|>ε]≤2−Ω(mε2),
E[ϕ(Xi)]=E[α]=a/2n. Ini menyiratkan bahwa, jika kita memilih (dan memastikan adalah kekuatan ), maka dengan probabilitas setidaknya , kesalahan paling banyak adalah .
m=O(1/ε2)=poly(n)m20.99k
Kasus 3: untukk=2cn+o(n)c<1
Dalam hal ini masalahnya adalah # P-hard: Kami akan melakukan pengurangan dari # 3SAT. Ambil 3CNF pada variabel . Pilih sedemikian hingga - ini membutuhkan . Biarkan kecuali sekarang pada variabel, bukan . Jika memiliki tugas yang memuaskan, maka memiliki tugas yang memuaskan, karena variabel "bebas" dapat mengambil nilai apa pun dalam tugas yang memuaskan. Sekarang misalkan kita memiliki sehinggaψmn≥mk<2n−m−1n=O(m/(1−c))ϕ=ψϕnmψbϕb⋅2n−mn−ma^|a^−a|≤k - yaitu adalah perkiraan jumlah penugasan yang memuaskan dari dengan kesalahan aditif . Kemudian
Karena adalah bilangan bulat, ini berarti kita dapat menentukan nilai tepat dari . Secara algoritmik menentukan nilai pasti mencakup pemecahan masalah # P-complete # 3SAT. Ini berarti bahwa # P-sulit untuk menghitung .a^ϕk
|b−a^/2n−m|=∣∣∣a−a^2n−m∣∣∣≤k2n−m<1/2.
bba^ba^