Kami mengatakan bahwa fungsi adalah konstruktif-waktu , jika ada mesin Turing multi-tape deterministik yang pada semua input panjang membuat paling banyak langkah dan untuk setiap ada beberapa input dari panjang di mana membuat dengan tepat langkah.
Kami mengatakan bahwa fungsi adalah sepenuhnya waktu-constructible , jika ada seorang deterministik multi-pita Turing mesin yang pada semua masukan dari panjang membuat persis langkah.
T1: Apakah ada fungsi yang konstruktif-waktu dan tidak sepenuhnya konstruktif-waktu?
Jawabannya adalah ya (lihat jawaban ini ), jika . Bisakah kondisi untuk "ya" diperkuat ke ? 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.
Jawaban:
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:N→N ϵ>0 f(n)≥(1+ϵ)n O(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 + ...22n n! n⌊logn⌋ p N p(n)≥(1+ϵ)n (1+ϵ)n n+⌊⌊logn⌋q⌋ q∈Q+
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 1 ∘ f 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.f1 f2 f1+f2 f1f2 ff21 f1∘f2
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 functionf 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, thenEXP−TIME=NEXP−TIME . To prove that, let us take an arbitrary problem L∈NEXP−TIME , L⊆{0,1}∗ . Then there exists a k∈N , s.t. L can be solved by a NDTM M in 2nk−1 steps. We can assume that at each step M goes in at most two different states for simplicity. Now define the function
I claim thatf is time-construcible. Consider the following deterministic Turing machine T :
Note that the length ofw (=n ) is enough that it determines all nondeterministic choices, since M on input (first ⌊⌊logn⌋+1−−−−−−−−−√k⌋ bits of bin(n)) makes at most n steps.
We can makeT run in at most 8n+1 steps. Now the following Turing machine proves that f is time-constructible:
Now suppose thatf is fully time-constructible. We will prove that this leads to EXP−TIME=NEXP−TIME .
The following algorithm solvesL :
This algorithm runs in exponential time and solvesL . Since L∈NEXP−TIME was arbitrary, EXP−TIME=NEXP−TIME .
sumber