Saya baru-baru ini menemukan batas bawah kuadrat pada kompleksitas masalah dalam model pohon keputusan, dan saya bertanya-tanya apakah hasil ini dapat digeneralisasi sebagian ke model mesin akses acak. Secara parsial , maksud saya generalisasi untuk program RAM dengan tradeoff waktu / ruang tertentu. Sebagai contoh, saya ingin menunjukkan bahwa masalah saya tidak dapat diselesaikan dengan program RAM linear-waktu dan -ruang.
AM Ben-Amram dan Z. Galil terbukti dalam makalah yang program RAM berjalan dalam waktu dan ruang s dapat disimulasikan dalam O ( t waktu pada mesin penunjuk. Apakah kita tahu hasil serupa yang dapat diterapkan pada pohon keputusan?
Atau, apakah mungkin untuk mensimulasikan program RAM yang berjalan di ruang dengan pohon keputusan derajat s ? (Secara intuitif, pengalamatan tidak langsung dapat disimulasikan menggunakan node derajat ≤ s )
Jawaban:
Model alami yang terkait dengan pohon keputusan yang dapat mensimulasikan RAM adalah program percabangan. Pada dasarnya, ini adalah pohon keputusan dengan sub pohon umum yang bergabung menghasilkan DAG. Waktu T dan ruang S pada RAM dapat disimulasikan dalam tinggi T dan ukuran 2 ^ S pada program percabangan. (Anda mungkin perlu menggunakan percabangan multi-arah.)
Untuk masalah keputusan, jelas bahwa setiap pohon keputusan hanya membutuhkan tinggi = # input dan spasi = total # bit dalam input. Perhatikan bahwa dengan percabangan multi-arah, seseorang mungkin memiliki # bit dalam input yang lebih besar dari ukuran # input yang biasa (mis. N pointer masing-masing mengambil log n bit.) Untuk masalah seperti itu dengan nlog n total bit input, seseorang dapat membuktikan bahwa masalah tertentu tidak dapat dipecahkan dalam waktu O (n) dan spasi = O (n) bit. Apakah itu bentuk masalah Anda?
Anda sepertinya menyarankan agar Anda menggunakan # output untuk mencoba mendapatkan batas bawah yang lebih besar. Biasanya untuk masalah multi-output memungkinkan banyak output sepanjang satu sisi daripada pada node daun (lihat, misalnya, makalah Borodin-Cook 1982 tentang penyortiran batas bawah). Namun, bahkan tanpa asumsi ini, kita juga dapat menghitung fungsi apa pun dengan tinggi = # input dan spasi = # bit input. (Baca dan ingat input, dan output semua nilai pada setiap node daun.)
sumber
Model alami yang terkait dengan pohon keputusan yang mensimulasikan RAM tanpa kehilangan adalah program percabangan. Pada dasarnya, ini adalah pohon keputusan dengan sub pohon umum yang bergabung menghasilkan DAG. Waktu T dan ruang S pada RAM dapat disimulasikan dalam tinggi T dan ukuran 2 ^ S pada program percabangan. (Anda mungkin perlu menggunakan percabangan multi-arah.)
Untuk masalah keputusan, jelas bahwa setiap pohon keputusan hanya membutuhkan tinggi = # input dan spasi = total # bit dalam input. Perhatikan bahwa dengan percabangan multi-arah, seseorang mungkin memiliki # bit pada input yang lebih besar dari ukuran # input yang biasa (mis. N pointer masing-masing mengambil log n bit.) Untuk masalah seperti itu dengan nlog n total bit input, seseorang dapat membuktikan bahwa masalah tertentu tidak dapat diselesaikan dalam waktu O (n) dan spasi = O (n) bit pada RAM.) Apakah itu bentuk masalah Anda?
Anda sepertinya menyarankan agar Anda menggunakan # output untuk mencoba mendapatkan batas bawah yang lebih besar. Namun, bahkan dengan ini Anda juga dapat menghitung fungsi apa pun dengan tinggi = # input dan spasi = # bit input. (Baca dan ingat input, dan output semua nilai yang diperlukan pada setiap node daun. Biasanya memungkinkan beberapa output pada satu node.)
sumber