NTIME (f) bagian dari DSPACE (f)

9

Seperti yang dinyatakan dalam pertanyaan, bagaimana kita membuktikan bahwa ?NTIME(f(n))DSPACE(f(n))

Adakah yang bisa mengarahkan saya ke bukti atau menguraikannya di sini? Terima kasih!

gdiazc
sumber
4
Saya kira ada mult. konstanta bersembunyi di sana. Anda dapat membuktikan bahwa . Cukup sebutkan semua dugaan non-deterministik dari algoritma, dan jalankan algoritma Anda dengan tebakan ini. Terima jika salah satu tebakan mengarah ke kondisi penerimaan. NTIME(f(n))DSPACE(2f(n))
Igor Shinkar
1
Mengapa tidak membuat ini jawaban?
Yuval Filmus
@IgorShinkar Ada berbagai hasil, seperti teorema speedup linier dan teorema kompresi kaset yang mengatakan Anda dapat menyingkirkan konstanta tersebut dalam keadaan "kebanyakan". Linear speedup mengatakan bahwa untuk ϵ > 0 ; kompresi kaset mengatakan bahwa D S P A C E ( f ( nDTIME(f(n))DTIME(ϵf(n)+n+2)ϵ>0 , lagi untuk setiap ϵ > 0 . DSPACE(f(n))DSPACE(ϵf(n)+O(1))ϵ>0
David Richerby

Jawaban:

4

Ini adalah versi yang diperluas dari komentar Igor Shinkar. Cara paling sederhana untuk mensimulasikan mesin non-deterministik berjalan dalam waktu dan spasi s ( n ) f ( n ) menggunakan ruang s ( n ) + 2 f ( n ) + O ( 1 ) . Kami menghitung semua kemungkinan lemparan koin, mensimulasikan mesin asli pada masing-masing; ini membutuhkan ruang f ( n ) untuk menyimpan lemparan koin, dan s ( nf(n)s(n)f(n)s(n)+2f(n)+O(1)f(n) ruang untuk mensimulasikan mesin yang sebenarnya. Ada sedikit kesulitan di sini: ketika lemparan koin "dibaca" oleh mesin (asli), kita perlu menandai di mana pun kita berada dalam urutan lemparan koin; kita bisa menggunakan bit tambahan per lemparan koin. Mungkin dimungkinkan untuk mengoptimalkan ini lebih jauh.s(n)

Jika kita berhati-hati, kita mungkin bisa mendapatkan sesuatu yang lebih baik, karena dalam setiap menjalankan program, jumlah total lemparan koin dan total ruang yang digunakan menambah paling banyak untuk . Saya menduga mungkin untuk menjalankan simulasi di ( 1 + o ( 1 )f(n) ruang. Mungkin kita perlu mengasumsikan sesuatu seperti f ( n ) = Ω ( log n ) untuk itu.(1+o(1))f(n)f(n)=Ω(logn)

Seperti yang disebutkan Igor, biasanya kelas yang dibatasi sumber daya hanya didefinisikan "hingga O besar", sehingga hasilnya, yang menggunakan ruang , masih dalam D S P A C E ( f ( n ) ) .O(f(n))DSPACE(f(n))

Yuval Filmus
sumber