Moore otomatlarını minimize etmek için algoritmalar


11

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?


Hangi Brzozowski algoritmasına atıfta bulunuyorsunuz? Düzenli ifadelerin türevlerini kullanan?
J.-E.

2
SE Bilgisayar Bilimi'ne hoş geldiniz. Görünüşe göre sitenin sunumunu henüz okumadığınız için, soru soran kullanıcılar ile cevap veya yorum yapan kullanıcılar arasındaki teknik alışverişe dayalı olarak işbirliğine dayalı bir çalışma olduğunu bilmelisiniz. Bu nedenle, yorumlarda daha fazla ayrıntı isteyen kullanıcılara yanıt vermek, iyi yanıtları veya iyi yorumları (veya okuduğunuz diğer ilginç soruları veya cevapları) onaylamak ve sonuç olarak, " seçilen cevabın solundaki işareti (V gibi) işaretleyin.
babou

Cevabın sizin için bir yararı oldu mu?
babou

Yanıtlar:


6

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 :(Q,q0,Σ,Π,δ,γ)

  • sonlu kümeler Q
  • Q'nun bir elemanı olan bir başlangıç ​​durumu (başlangıç ​​durumu da denir) q0Q
  • 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 δ:Q×ΣQ
  • bir çıkış fonksiyonu her durumu çıkış alfabesine eşleme γ:QΠ

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.LxyzxzyzLRLxRLyxyRL

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 .LRLLRL

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 .qWqRL

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 .LWqRL

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 ) .O(n2)O(nlogn)

RTTRLRT

TxyzT(xz)=T(x)uT(yz)=T(y)vuvzxy

RTΣ

Aşağıdaki algoritma, DFA minimizasyonu için Moore algoritmasını taklit eder.

PQSe

eΠ:Se={qQγ(q)=e}

P

S
   aΣ,
     SP,qS,δ(q,a)S
     SSi
      SiSPqSi,δ(q,a)S
      SiSP

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.

aΣ

n=|Q|s=|Σ|
nO(sn2)

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.

O(snlogn)


@Raphael Bir referans ... Şanslısınız, algoritmayı yeniden tasarladım, çünkü bir kütüphaneye erişimim yok. Ama referans istediğin için sana bir tane aldım. Hoşuna gitmeli. Ama öğretmek için kullanacağımdan emin değilim.
babou

@Raphael Makale sunumunda ilginç ve cebirselden çok daha sezgisel olmaya çalışıyor. Myhill ve Nerode'un katkısının tüm ayrıntılarını hatırlamıyorum (iki yıl sonra 1958'de) ve makaleyi yeterince dikkatle okumadım (daha ziyade yağsızım) ama teorinin Moore'a atfedilmemesi gerekip gerekmediğini merak ediyorum iyi.
babou

2

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.


@DW Düzenleme için teşekkürler. Mükemmel.
J.-E.

1

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.