Brzozowski'nin algoritması Moore otomata genişletilebilir, ancak zaman karmaşıklığı genel olarak üsteldir. Moore otomata'nın minimize edilmesi için başka bir algoritma var mı? Varsa bu algoritmaların çalışma süreleri nelerdir?
Brzozowski'nin algoritması Moore otomata genişletilebilir, ancak zaman karmaşıklığı genel olarak üsteldir. Moore otomata'nın minimize edilmesi için başka bir algoritma var mı? Varsa bu algoritmaların çalışma süreleri nelerdir?
Yanıtlar:
Orijinal DFA minimizasyon algoritması aslında görünüşte daha gözlemlenebilir davranışları tarafından yönlendirilen Moore Makineleri için tasarlanmıştır . Ancak burada sunulan algoritma, DFA minimizasyonundan bir rekonstrüksiyon, çünkü gerçekliğin ardından tarihsel kanıtları keşfettim.
Wikipedia'dan sonra (bazı değişikliklerle):
Bir Moore makinesi aşağıdakilerden oluşan 6-demet :
- sonlu kümeler
- Q'nun bir elemanı olan bir başlangıç durumu (başlangıç durumu da denir)
- giriş alfabe denilen sonlu küme
- çıktı alfabe denilen sonlu küme
- bir geçiş fonksiyonu bir durumu ve giriş alfabesini bir sonraki duruma eşler
- bir çıkış fonksiyonu her durumu çıkış alfabesine eşleme
Bu tanımdan bir Moore makinesi belirleyici bir sonlu durum dönüştürücüsüdür.
Moore otomatlarını minimize etmek için referansım yok. Bununla birlikte, deterministik sonlu durum otomataları için kullanılan algoritmadan türetilen bir algoritma hayal etmek çok zor görünmemektedir.
DFA minimizasyonundaki fikir , normal dillerin Myhill-Nerode karakterizasyonuna dayanmaktadır .
Bir dil verilen , ve yaylı bir çift x ve y , bir dize için ayırt edici bir uzantı tanımlayan z iki dizginin tam olarak bir şekilde x , z ve y , z ait L . Bir ilişki tanımlama R L kuralla tellerde olduğu X R L y için ayırt edici bir uzantı bulunmaktadır IFF x ve y . O göstermek kolaydır R L dizeleri üzerinde bir denklik bağıntısı olduğunu ve bu nedenle denklik sınıflarına tüm dizeleri seti böler.
Teoremi bildiren Myhill-Nerode düzenli, ancak ve ancak, eğer R ' L denklik sınıfları sonlu sayıda ve ayrıca küçük deterministik sonlu otomat durumları (DFA) sayısı tanıyarak L denklik sınıfları sayısına eşittir içerisinde R, L .
Gerçekten de, her durum küçük DFA şekildedir W q, yukarıda tanımlandığı gibi bir ilişki için denklik sınıflarının biri R, L .
Normal bir dil için bir non-az DFA için , her resim grubu göstermek için kolaydır W q dizeleri içeren tüm ile ilgili olarak bir aynı, eşdeğer sınıfına aittir R L .
Bu nedenle, iki farklı durumun eşdeğer dizeler içerdiği gösterildiğinde, DFA'nın en aza indirilmesi aslında birleştirme durumlarından (eşdeğer dizeler kümesi olarak kabul edilir) oluşur.
İki makul hızlı algoritmalar bu amaçla mevcut, zaman içinde olan Moore algoritması (1956) ve zaman içinde Hopcroft algoritması (1971) O ( n log n ) .
Aşağıdaki algoritma, DFA minimizasyonu için Moore algoritmasını taklit eder.
Ayrılması gereken hiçbir sınıf kalmadığında, geri kalan durum sınıfları minimal Moore makinesinin durumlarını oluşturacaktır.
Yapım gereği, bir sınıftaki tüm durumlar sınıfın çıktısı olan aynı çıktıya sahiptir.
Moore makinelerinin bu minimizasyonu için herhangi bir referansım yok. Muhtemelen makalesine dahil edilmiştir:
Moore, Edward F (1956). "Sıralı Makinelerde Gedanken Deneyleri". Otomata Çalışmaları , Annals of Mathematical Studies (Princeton, NJ: Princeton University Press) (34): 129-153.
Bu makale Moore Makinelerini tanıtan ana referanstır . Ayrıca Moore'un DFA minimizasyon algoritması için referanstır . Bu nedenle, algoritmanın Moore Makinelerinin en aza indirilmesine adaptasyonunun en azından bu makalede önerilmemesi şaşırtıcı olmalıdır. Kağıdı kontrol ettim ve sunulan minimizasyon algoritmasının sürümü aslında DFA için değil Moore makineleri içindir. Kağıt iyi yazılmış, ancak zamanın tarzı okumayı biraz zorlaştırıyor. Sonlu Durum Makineleri'nin Myhill-Nerode teorisinin birçok fikrinin bu makalede önceden çizildiğini görmek ilginçtir.
Brzozowski'nin algoritmasının düzenli ifadelerin türevlerini kullanan bir versiyonu [2], Bölüm 12, Bölüm 4'te verilmiştir, burada [4] olarak belirtilmiştir. Ardışık transdüserlerin daha genel durumu için [1] ve [3] 'e bakınız (terminoloji biraz modası geçmiş ve ardışık transdüser terimi günümüzde muhtemelen daha uygundur).
[1] C. Choffrut, Ardışık transdüserlerin minimize edilmesi: bir anket, Theoret. Zorunlu. Sci. 292 (2003), 131-143.
[2] S. Eilenberg, Automata, Diller ve Makineler, cilt. A, Academic Press, 1974.
[3] J.-E. Pin, Sıralı fonksiyonlar hakkında bir öğretici . (Slaytlar)
[4] GN Raney, Sıralı fonksiyonlar, JACM 5 (1958), 177-180.
Brzozowski'nin algoritması kötü bir başlangıç noktasıdır (asimptotik en kötü durum çalışma zamanı ile ilgileniyorsanız). Wikipedia bile size şunları söyler:
Brzozowski'nin (1963) gözlemlediği gibi, bir DFA'nın kenarlarını tersine çevirmek, orijinal dilin tersine çevrilmesi için belirleyici olmayan bir sonlu otomat (NFA) üretir ve bu NFA'yı standart güç seti yapısını kullanarak bir DFA'ya dönüştürür (yalnızca ulaşılabilir durumları oluşturur) dönüştürülen DFA), aynı ters dil için minimum DFA'ya yönlendirir. Bu ters işlemin ikinci kez tekrarlanması, orijinal dil için minimum bir DFA üretir. Brzozowski algoritmasının en kötü durum karmaşıklığı üsteldir, çünkü tersinmenin en az DFA'sının dilin en az DFA'sından katlanarak daha büyük olduğu düzenli diller vardır, ancak bu en kötü durumun önerebileceğinden daha iyi performans gösterir.
Algoritmanın, DFA'da bile üstel en kötü durum çalışma zamanı vardır , çünkü tersi için bir otomatı hesaplar, bu da üstel olarak büyük olabilir. Yani probleminiz uzantıdan dönüştürücülere gelmiyor.
Başka bir DFA minimizasyon algoritması uyarlamaya çalışın.