Nó đủ dễ dàng để đánh đổi thời gian cho không gian, như sau.
Chuyển đổi biểu thức chính quy để một NFA - cho concreteness trong thuật toán so sánh, chúng tôi sẽ giả định rằng là số tiểu bang NFA, do đó bạn O ( r s ) thời gian ràng buộc cho trực tiếp mô phỏng NFA là hợp lệ và bạn O ( 2 r ) không gian bị ràng buộc để chạy DFA được chuyển đổi cũng hợp lệ bất cứ khi nào bạn làm việc trong RAM có thể giải quyết nhiều bộ nhớ đó.rO(rs)O(2r)
Bây giờ, phân vùng các tiểu bang của NFA (tùy ý) vào tập con S i ít nhất ⌈ r / k ⌉ khẳng định mỗi người. Trong mỗi tập con S i , chúng ta có thể chỉ mục các tập con A i của S i bởi các số từ 0 để 2 ⌈ r / k ⌉ - 1 .kSi⌈r/k⌉SiAiSi02⌈r/k⌉−1
Xây dựng bảng trong đó i và j nằm trong phạm vi từ 0 đến k - 1 , c là ký hiệu đầu vào và A i là (chỉ số số của) một tập con của S i . Giá trị được lưu trong bảng là (chỉ số bằng số) một tập hợp con của S j : trạng thái y nằm trong T [ i , j , c , A i ] khi và chỉ khiT[i,j,c,Ai]ijk−1cAiSiSjyT[i,j,c,Ai] thuộc S j và có một trạng thái trong A i chuyển sang y trên ký hiệu đầu vào c .ySjAiyc
Để mô phỏng NFA, duy trì chỉ số, mỗi chỉ số cho mỗi S i , chỉ định tập hợp con A i của các trạng thái trong S i có thể đạt được bằng một số tiền tố của đầu vào. Đối với mỗi ký hiệu đầu vào c , sử dụng các bảng để tra cứu, đối với mỗi cặp i , j , tập hợp các trạng thái trong S j có thể đạt được từ trạng thái trong A i bằng cách chuyển đổi trên c , sau đó sử dụng nhị phân bit hoặc hoạt động trên các chỉ số số của các tập hợp trạng thái này để kết hợp chúng thành một tập hợp con các trạng thái của S jkSiAiSici,jSjAicSj. Vì vậy, mỗi bước của mô phỏng cần có thời gian và tổng thời gian cho mô phỏng là O ( s k 2 ) .O(k2)O(sk2)
Không gian cần thiết là không gian cho tất cả các bảng, đó là . Phân tích thời gian và không gian là hợp lệ trên bất kỳ RAM nào có thể giải quyết nhiều bộ nhớ đó và có thể thực hiện các thao tác nhị phân trên các từ đủ lớn để giải quyết nhiều bộ nhớ đó.O(k22r/k)
Sự đánh đổi không gian thời gian bạn nhận được từ điều này không hoàn toàn khớp với mô phỏng NFA, vì sự phụ thuộc bậc hai vào . Nhưng sau đó, tôi hoài nghi rằng O ( r s ) là thời điểm thích hợp ràng buộc đối với các mô phỏng NFA: làm thế nào để bạn mô phỏng một bước duy nhất của NFA nhanh hơn so với nhìn vào tất cả các (có thể hiện bậc hai nhiều) chuyển tiếp cho phép từ một hiện trạng thái hoạt động sang trạng thái khác? Không phải là O ( r 2 s ) sao?kO(rs)O(r2s)
Trong mọi trường hợp bằng cách để thay đổi, bạn có thể có giới hạn thời gian liên tục giữa giới hạn DFA và NFA, với ít không gian hơn DFA.k