Definisi kesetaraan konstruktivitas waktu

13

Kami mengatakan bahwa fungsi f:NN adalah konstruktif-waktu , jika ada mesin Turing multi-tape deterministik M yang pada semua input panjang n membuat paling banyak f(n) langkah dan untuk setiap n ada beberapa input dari panjang n di mana M membuat dengan tepat f(n) langkah.

Kami mengatakan bahwa fungsi f:NN adalah sepenuhnya waktu-constructible , jika ada seorang deterministik multi-pita Turing mesin M yang pada semua masukan dari panjang n membuat persis f(n) langkah.

T1: Apakah ada fungsi yang konstruktif-waktu dan tidak sepenuhnya konstruktif-waktu?

Jawabannya adalah ya (lihat jawaban ini ), jika EXPTIMENEXPTIME . Bisakah kondisi untuk "ya" diperkuat ke PNP ? Bisakah "ya" dibuktikan?

T2: Apakah kelas fungsi constuctible waktu (sepenuhnya) berubah jika kita hanya mengizinkan mesin Turing 2-pita dalam definisi?

T3: Apa alasan "dapat dibuktikan" untuk meyakini bahwa semua fungsi yang bagus sepenuhnya dapat dibangun waktu?

Makalah
Kojiro Kobayashi: On Proving Time Constructibility of Function. Teor Komputasi. Sci. 35: 215-225 (1985)
menjawab sebagian Q3. Ringkasan parsial dan peningkatannya ada di jawaban ini . Saya mengambil Q3 sebagai jawaban.

Secara historis, gagasan fungsi yang dapat dihitung waktu-nyata digunakan sebagai pengganti (sepenuhnya) konstruktif-waktu. Lihat pertanyaan ini untuk lebih lanjut.

David G
sumber
Ingin tahu - bisakah Anda mengarahkan saya ke referensi untuk definisi ini? Saya tidak akrab dengan fungsi constructible, dan saya tidak dapat menemukan definisi ini secara online (itu juga tidak jelas bagi saya apakah mereka setara dengan misalnya pada wikipedia yang).
usul
@ Usul Referensi adalah: JE Hopcroft, JD Ullman. Pengantar teori automata, bahasa, dan komputasi. Seri Addison-Wesley dalam Ilmu Komputer, 1979 Definisi yang sama dapat ditemukan di sini: cse.ohio-state.edu/~gurari/theory-bk/theory-bk-fivese2.html
David G

Jawaban:

5

Dalam beberapa hari terakhir saya banyak berpikir tentang fungsi konstruksi-penuh (sepenuhnya) dan saya akan mempresentasikan apa yang saya temukan dengan menjawab Q1 dan Q3. Q2 sepertinya terlalu sulit.

Q3:

Kobayashi dalam artikelnya (rujukannya ada dalam pertanyaan) membuktikan bahwa fungsi , yang terdapat ϵ > 0 st f ( n ) ( 1 + ϵ ) n , sepenuhnya dapat dibangun jika dihitung dalam waktu O ( f ( n ) ) . (perhatikan bahwa tidak relevan apakah input atau output dalam unary / binary karena kita dapat mengubah antara dua representasi ini dalam waktu linier). Ini membuat fungsi-fungsi berikut ini sepenuhnya dapat dibangun dengan waktu: 2 n ,f:NNϵ>0f(n)(1+ϵ)nO(f(n))2n , n ! , n log n , semua polinomial p lebih dari N st p ( n ) ( 1 + ϵ ) n ... Kobayashi juga membuktikan konstruktivitas waktu sepenuhnya untuk beberapa fungsi yang tumbuh lebih lambat daripada ( 1 + ϵ ) n , seperti n + log n q untuk q Q + ...22nn!nlognpNp(n)(1+ϵ)n(1+ϵ)nn+lognqqQ+

Untuk melanjutkan dengan contoh-contoh fungsi yang dibangun sepenuhnya waktu, orang dapat membuktikan bahwa jika dan f 2 sepenuhnya dapat dibangun waktu, maka f 1 + f 2 , f 1 f 2 , f f 2 1 dan f 1f 2 adalah juga sepenuhnya time-constructible (selanjutnya mengikuti langsung dari Teorema 3.1 di Kobayashi). Ini sekaligus meyakinkan saya bahwa banyak fungsi yang bagus memang sepenuhnya dapat dibangun waktu.f1f2f1+f2f1f2f1f2f1f2

Sangat mengejutkan bahwa Kobayashi tidak melihat cara untuk membuktikan sepenuhnya konstruk waktu dari fungsi (baik) (dan saya juga tidak).nlogn

Let us also comment the definition from Wikipedia article: A function f is time-constructible, if there exists a Turing machine M which, given a string 1n, outputs f(n) in O(f(n)) time. We see that this definition is equivallent to our definition of fully time-constructibility for functions f(n)(1+ϵ)n.

Q1:

This question has a really interesting answer. I claim that if all time-constructible functions are fully time-constructible, then EXPTIME=NEXPTIME. To prove that, let us take an arbitrary problem LNEXPTIME, L{0,1}. Then there exists a kN, s.t. L can be solved by a NDTM M in 2nk1 steps. We can assume that at each step M goes in at most two different states for simplicity. Now define the function

f(n)={8n+2if (first logn+1k bits of bin(n))L8n+1else

I claim that f is time-construcible. Consider the following deterministic Turing machine T:

  • on input w of length n it computes (first logn+1k bits of bin(n)) in O(n) time
  • then it simulates M on these bits, where the bits of w determine which (formerly nondeterminisic) choices to take.
  • accept iff (M accepts using choices given by w).

Note that the length of w (=n) is enough that it determines all nondeterministic choices, since M on input (first logn+1k bits of bin(n)) makes at most n steps.

We can make T run in at most 8n+1 steps. Now the following Turing machine proves that f is time-constructible:

  • on input w of length n run T and count steps in parallel so that exacly 8n steps are done.
  • if T rejected or would reject in the next step, go to a halting state in the next step. Else, make one more step and then go to a halting state.

Now suppose that f is fully time-constructible. We will prove that this leads to EXPTIME=NEXPTIME.

The following algorithm solves L:

  • on input x, let n be the number with binary representation x000 (|x|k1 zeros). It follows that x=(first logn+1k bits of bin(n)).
  • compute f(n) in time f(n) and check whether it is divisible by 2.

This algorithm runs in exponential time and solves L. Since LNEXPTIME was arbitrary, EXPTIME=NEXPTIME.

David G
sumber
4
Very nice! [padding to make the comment box happy]
Emil Jeřábek supports Monica
1
A very similar idea to the one presented in the answer to the question Q1 is also used here.
David G