Apakah DSPACE (n) = DSPACE (1.5n)?


11

Dari teorema ruang-hierarki diketahui bahwa jika f -ruang-dibangun maka DSPACE ( 2f(n) ) tidak sama dengan DSPACE ( f(n)) .

Di sini, oleh DSPACE ( f(n)) saya maksud adalah kelas semua masalah yang dapat diselesaikan dalam ruang f(n) oleh mesin Turing dengan beberapa alfabet tetap. Hal ini memungkinkan untuk mempertimbangkan teorema Space-hierarki dengan akurasi seperti itu.

Argumen standar memberikan konstanta multiplikasi : kita membutuhkan ruang untuk membangun perhitungan beberapa mesin Turing dengan yang universal. Kita juga perlu untuk menyelesaikan masalah dengan penghentian.2f(n)f(n)

Pertanyaan: Apakah DSPACE ( ) sama dengan DSPACE ( )? f(n)32f(n)


2
alasan Anda tertarik pada ? Apakah sama-sama menarik? 321+Ω(1)
Thomas

1
Mengapa Anda berpikir bahwa teorema ruang-hierarki memberikan ? Saya kira Anda berpendapat bahwa kami membutuhkan ruang untuk simulasi dan ruang untuk menghitung jumlah langkah untuk menghindari loop tak terbatas. Tetapi dalam kedua kasus tersebut, kita perlu menandai lokasi pada pita (dapat dilakukan karena adalah ruang-konstruktif) dan bagaimana Anda akan melakukan penandaan? Argumen Anda OK jika Anda menganggap bahwa mesin tidak diperbolehkan untuk menulis *, tetapi sebaliknya beberapa komplikasi lebih lanjut diperlukan. f ( n ) log | Σ | | Σ | f ( n ) f ( n ) f2f(n)f(n)log|Σ||Σ|f(n)f(n)f
domotorp

@ Thomas Sebenarnya saya ingin1+o(1)
Alexey Milovanov

Jawaban:


9

Dapat dibuktikan bahwa DSPACE DSPACE jika tumbuh setidaknya secara linear dengan menggunakan varian sederhana dari argumen padding standar. Untuk bahasa , misalkan .(f(32n)) (f(n))fLL={x0| x| /2xL}(f(n))fLL={x0|x|/2xL}

Klaim. DSPACE jika dan hanya jika DSPACE jika .L( f ( n ) ) L ( f ( 2(f(n))L(f(23n))f(n)32n

(Jawaban pertama saya memiliki beberapa pernyataan yang salah, terima kasih kepada Emil untuk mengetahui ini.)

Pertama-tama saya akan menunjukkan cara menggunakan klaim untuk membuktikan hierarki. Karena tumbuh setidaknya secara linear, kami memiliki DSPACE DSPACE . Ambil bahasa DSPACEf( 2 f ( n ) ) ( f ( 2 n ) ) L ( f ( 2 n ) ) ( f ( n ) ) L ( f ( 4 ( 4)(2f(n))(f(2n))L(f(2n)) DSPACE . Menggunakan klaim, DSPACE DSPACE , di mana kesetaraan terakhir adalah dengan asumsi tidak langsung. Tetapi kemudian DSPACE DSPACE , di mana kesetaraan terakhir lagi dengan asumsi tidak langsung, memberikan kontradiksi.(f(n))L(f(43n))= (f(n))L(f(3(f(n))L(f(32n))= (f(n))(f(n))

Bukti klaim. Jika DSPACEL( f ( 2(f(23n)) , maka untuk membuktikan DSPACE , kita hanya perlu menulis 0's di akhir input dan mensimulasikan mesin yang menerima . Karena , ini tidak akan menambah ruang yang kita gunakan. (Faktanya, mengetahui berapa 0 untuk menulis tidak jelas sama sekali jika kecil dan kita tidak dapat meningkatkan ukuran alfabet - sebagai gantinya, kita dapat menggunakan kaset lain dan menulis bahwa segala sesuatu yang akan datang setelah akhir .)L(f(n))| x| /2xLf(n)3(f(n))|x|/2xLf(n)32nfx

Arah lainnya hanya sesederhana ini dengan mengganti 0 dengan *, jika kita diizinkan menulis *. (Lihat masalah dengan ini di komentar saya untuk pertanyaan.) Jika kita tidak diizinkan untuk menulis bintang, maka kita sedikit mengubah definisi sebagai . Sekarang, alih-alih menulis bintang, kami menyimpan input asliLL={x10|x|/2xL}x10|x|/2dan bekerja dengan itu. Tetapi setiap kali kita mencapai angka 1, kita ke kanan sampai kita menekan angka 1 yang lain untuk memeriksa apakah itu kata akhir 1 atau tidak. Jika kami telah menemukan 1 lainnya, kami hanya kembali ke 1. kami. Jika belum, kami masih kembali, tetapi kami akan tahu bahwa itu harus diperlakukan sebagai bintang - jika kami ingin menulis di atasnya, maka kami juga menulis 10 setelahnya untuk memiliki penanda akhir kata saat ini. (Bahkan, ada juga tangkapan kecil di bagian ini jika kecil - bagaimana kita dapat memeriksa apakah inputnya dalam bentuk ? Tanpa merusak input, saya hanya dapat menyelesaikan ini dengan menggunakan beberapa kepala untuk kecil .)fx10|x|/2f


Saya tidak mengerti argumen sama sekali. Apa pun cara saya melihatnya, konstruksi padding hanya menunjukkan bahwa jika , maka , yang cukup berbeda dari klaim (perhatikan lokasi ). Demikian juga, arah yang berlawanan sama sekali tidak jelas seperti yang dinyatakan, yang hanya jelas bagi saya adalah bahwa jika , maka . Bahkan jika saya mengambil klaim pada nilai nominal, bukti hasil utama salah: hanya memberikan . L D S P A C E ( f ( 2)LDSPACE(f(n))2LDSPACE(f(23n)) LDSPACE(f(223LDSPACE(f(n)+nLDSPACE(f(23n))LDSPACE(2f(n))L'DSPACE(4LDSPACE(f(n)+n2)LDSPACE(2f(n))LDSPACE(43f(n)+n3))
Emil Jeřábek

1
@Emil Anda benar. Saya mencoba memperbaikinya, apakah terlihat lebih baik?
domotorp

1
O ( log n ) f D S P A C E ( f ( n ) ) D S P A C E ( ( 1 + ϵ ) f ( n ) ) ϵ > 0LDSPACE(f(23n))LDSPACE(f(n))O(logn)fDSPACE(f(n))DSPACE((1+ϵ)f(n)) untuk konstanta dengan mengulangi argumen. ϵ>0
Emil Jeřábek

2
@Emil Saya tidak berpikir kaset input hanya baca - AFAIK yang hanya diasumsikan jika . f(n)<n
domotorp
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.