Cukup mudah untuk menukar waktu dengan ruang, sebagai berikut.
Mengkonversi ekspresi reguler ke NFA - untuk konkret dalam algoritma membandingkan, kita akan berasumsi bahwa adalah jumlah negara NFA, sehingga Anda O ( r s ) terikat waktu untuk langsung simulasi NFA valid dan Anda O ( 2 r ) ruang yang terikat untuk menjalankan DFA yang dikonversi juga berlaku setiap kali Anda bekerja dalam RAM yang dapat mengatasi banyak memori.rO(rs)O(2r)
Sekarang, pisahkan status NFA (sewenang-wenang) menjadi himpunan bagian S i paling banyak ⌈ r / k ⌉ menyatakan masing-masing. Dalam setiap subset S i , kita dapat mengindeks himpunan bagian A i dari S i dengan angka dari 0 hingga 2 ⌈ r / k ⌉ - 1 .kSi⌈r/k⌉SiAiSi02⌈r/k⌉−1
Buat tabel mana i dan j berada dalam kisaran dari 0 hingga k - 1 , c adalah simbol input, dan A i adalah (indeks numerik) subset dari S i . Nilai yang disimpan dalam tabel adalah (indeks numerik) himpunan bagian dari S j : keadaan y adalah dalam T [ i , j , c , A i ] jika dan hanya jikaT[i,j,c,Ai]ijk−1cSEBUAHsayaSsayaSjyT[ i , j , c , Asaya] milik S j dan ada keadaan dalam A i yang bertransisi ke y pada simbol input c .ySjSEBUAHsayayc
Untuk mensimulasikan NFA, pertahankan indeks , satu untuk setiap S i , tentukan subset A i dari status di S i yang dapat dijangkau oleh beberapa awalan input. Untuk setiap simbol input c , gunakan tabel untuk mencari, untuk setiap pasangan i , j , himpunan status dalam S j yang dapat dicapai dari keadaan di A i dengan transisi pada c , dan kemudian gunakan biner bitwise atau operasi pada indeks numerik set negara-negara untuk menggabungkan mereka menjadi satu subset tunggal negara S jkSsayaSEBUAHsayaSsayacsaya , jSjSEBUAHsayacSj. Jadi, setiap langkah simulasi membutuhkan waktu , dan total waktu untuk simulasi adalah O ( s k 2 ) .O ( k2)O ( s k2)
Ruang yang dibutuhkan adalah ruang untuk semua tabel, yaitu . Analisis ruang dan waktu berlaku pada setiap RAM yang dapat mengatasi memori sebanyak itu dan yang dapat melakukan operasi biner pada kata-kata yang cukup besar untuk mengatasi memori sebanyak itu.O ( k22r / k)
Pengorbanan ruang-waktu yang Anda dapatkan dari ini tidak cocok dengan simulasi NFA, karena ketergantungan kuadrat pada . Tapi kemudian, saya skeptis bahwa O ( r s ) adalah waktu yang tepat terikat untuk simulasi NFA: bagaimana Anda mensimulasikan satu langkah dari NFA lebih cepat daripada melihat semua (mungkin kuadratik banyak) transisi diperbolehkan dari saat ini negara aktif ke negara lain? Bukankah seharusnya O ( r 2 s ) ?kO ( r s )O ( r2s )
Dalam hal apa pun dengan membiarkan bervariasi, Anda bisa mendapatkan batas waktu pada kontinum antara batas DFA dan NFA, dengan ruang lebih sedikit daripada DFA.k