Aşağıdaki gibi, mekan için zaman kazanmak için yeterince kolay.
Biz o varsayıyoruz karşılaştıran algoritmalarda somutluktan için - bir NFA düzenli ifade dönüştürün , NFA durum sayısıdır böylece o Ç ( r s ) zaman doğrudan NFA simüle gitmekte geçerli olduğundan ve Ç ( 2 r ) Dönüştürülmüş DFA'yı çalıştırmak için bağlı alan, bu kadar fazla belleği ele alabilen bir RAM'de çalışırken de geçerlidir.rO(rs)O(2r)
Şimdi, içine NFA (keyfi) durumlarını bölüm alt kümeleri S i en fazla bir ⌈ r / k ⌉ her belirtiyor. Her bir alt-kümesi içinde S i , biz göstergesi alt-kümeleri bir i arasında S i arasındaki bir sayı ile 0 bulundunuz 2 ⌈ R / K ⌉ - 1 .kSi⌈r/k⌉SiAiSi02⌈r/k⌉−1
Bir tablo inşa burada i ve j, 0 ila aralığındadır k - 1 , c bir giriş sembolüdür ve bir ı (sayısal göstergesi) 'in bir alt kümesidir S i . Tabloda depolanan değer, bir S j alt kümesidir (sayısal indeksi) : bir y durumu T [ i , j , c , A i ] durumunda ve sadeceT[i,j,c,Ai]ijk−1cAiSiSjyT[i,j,c,Ai] ait S j ve bir durumu vardır , A ı edilene geçişler y giriş sembolü c .ySjAiyc
Korumak NFA simüle etmek için endeksleri, her biri için bir S i alt grubu belirten, A ı in durumlarının S i girişi bazı ön-ek ile ulaşılabilir. Her bir giriş için, sembol , c , her çifti için, aramak için masalar kullanmak i , j , devletler grubu S j bir durumdan ulaşılabilir A I ile ilgili bir geçiş ile , c , ve daha sonra bir bit-bazında ikili kullanmak ya da Bunları tek bir S j durumunun bir alt kümesinde birleştirmek için bu durum kümelerinin sayısal endeksleri üzerinde işlem yapılmasıkSiAiSici,jSjAicSj. Bu nedenle, simülasyon her aşaması zaman alır ve simülasyon için toplam süre olan O ( s k 2 ) .O(k2)O(sk2)
Gereken alan tüm tabloların bir alandır . Zaman ve alan analizi, bu kadar fazla belleğe hitap edebilecek ve bu kadar fazla belleği giderecek kadar büyük olan kelimelerde ikili işlemler yapabilen herhangi bir RAM'de geçerlidir.O(k22r/k)
Bu aldığım zaman-mekan değiş tokuş mükemmel çünkü üzerinde kuadratik bağımlılık, NFA simülasyonu uymuyor . Ancak, N ( N ) simülasyonu için O ( r s ) 'nin doğru zamana bağlı olduğuna kuşkuluyum : NFA'nın tek bir adımını şu anda izin verilen tüm (muhtemelen kuadrik olarak birçok) geçişe bakmaktan daha hızlı nasıl simüle edersiniz? başka bir devlet için aktif durum? O ( r 2 s ) olmamalı mı ?kO(rs)O(r2s)
Her durumda, değişmesine izin vererek , DFA ile NFA sınırları arasındaki süreklilikte, DFA'dan daha az alana sahip zaman sınırlamaları alabilirsiniz.k