Sonlu otomatanın üç temsil biçimini de neden inceleyelim?


9

DFA, NFA ve epsilon NFA her üçü de belirli bir normal dili temsil etmemizi sağlar. Bu temsillerden herhangi biriyle aynı düzenli ifadeye ulaşabiliriz, o zaman neden sonlu otomatanın üç temsil biçimini de incelememiz gerekiyor? NFA'nın hangi DFA'nın yapamayacağı konusunda bazı açıklamalar olabilir, yani NFA belirsizliklerin tasarlanmasında bize yardımcı olabilir. Örneğin bir oyun (satranç) tasarlarken, belirli bir parçayı belirli bir yerden NFA kullanarak kolayca temsil edilebilecek birçok seçeneğimiz var. Peki aynı şey NFA veya DFA kullanılarak yapılabildiğinde epsilon NFA'nın kullanımı nedir?


2
Üçten fazla var. Bunlar sadece tipik olarak ders kitaplarında bulunanlardır. Epsilon geçişleri teoremleri kanıtlamak için yararlıdır, ancak bunların kendi iyiliği için modellerde kullanıldığından emin değilim.
wvxvw

3
@wvxvw, normal bir ifadeyi bir NFA'ya çevirmek için kullanılan algoritma geçişlerini çok doğal bir şekilde kullanır. Onlar sadece kanıtlar için değil, deterministik olmayan bir ortamda oldukça doğallar. ϵ
vonbrand

Yanıtlar:


13

Dördüncü için düzenli gramer ekleyin. Başkaları da var ...

DFA + NFA'ya olan ilginin bir kısmı, basit hesaplama modelleri olmalarıdır, NFA (ve -NFA) belirsizliği olmayan örnekler (daha ayrıntılı modeller için önemli bir fikir). DFA ve NFA'nın aynı dil kümesini kabul ettiğini kanıtlamak, basit ve anlaşılır bir ortamda çok önemli bir fenomeni araştırmaktadır.ϵ

Düzenli ifadeler (ve ayrıca düzenli gramerler), aynı dil kümesini tanımlayan tamamen farklı formalizmlerdir. Yine, bu gerçeğin kanıtı önemli çapraz ilişkileri araştırıyor ve formalizmlerin çok farklı görünebileceği , radikal olarak farklı kavramlara dayanabileceği, ancak aynı dilleri tanımlayabileceğinin bir örneği . Yine, oldukça basit bir ortamda.

"Gerçek dünya" kullanımı için, normal bir ifadeyle başlayabilir ve yüksek performanslı arama için minimum bir DFA elde edebilirsiniz. Dijital devreler esasen DFA'lardır, bilgisayar mühendisliğinde bunların merkezidir. Son fakat aynı derecede önemli olarak, sistem, bu şekilde görüntüleyen gerçek bir DFA'dan çok uzak olsa bile, sistemler harici bir uyaran üzerinde "bir durumda olmak" ve "diğerine geçmek" olarak modellenebilir.

Daha sonra eklendi: Raphael'in belirttiği gibi, bir NFA'yı doğrudan arama için yorumlamak daha verimli olabilir, çünkü bir DFA oluşturmak pahalı olabilir ve bir NFA çok daha küçük olabilir.


1
"Başkaları var" - onlarca ....
Raphael

1
NFA'nın yararlı olabileceğini belirtmek isteyebilirsiniz (DFA tek alternatifse), çünkü çok daha küçük olabilirler, ancak bir kelimenin kabul edilip edilmediğini kontrol etmek için birini kullanmak çok daha pahalı değildir.
Raphael

5

DFA'ların ve NFA'ların farklı formlarını / yazışmalarını incelemek için çok çeşitli nedenler vardır. bazı gelişmiş karmaşıklık teorisinden bazı seçkin özellikler.

  • NFA'lar "paralel hesaplama" için ilginç bir modeldir. devletlerin NFA üzerinden ilerlemesi DFA hesaplamasının paralel bir versiyonu olarak görülebilir. dolayısıyla DFA ve NFA hesaplamaları, sıralı ve paralel hesaplamanın bazılarını yansıtır. her iki bağlamı karşılaştırarak problemlerin doğal algoritmik karmaşıklığını araştırmaya da yardımcı olur.

  • NFA'lar genellikle normal ifade NFA'lara dönüştürülen ve daha sonra muhtemelen daha verimli aramaya yardımcı olmak için DFA'lara dönüştürülen düzenli ifadelerin tanımlanmasına izin veren düzenli ifade eşleştirme sistemlerinde (unix döneminde ortaya çıkan diller arasında oldukça yaygın olan) kullanılır.

  • Bölgede kalan birkaç açık problem vardır ve bunlar genellikle DFA / NFA yazışmaları temelinde incelenir. bkz. örneğin DFA'larda açık problemler var mı (cstheory stackexchange). Biraz şaşırtıcı bir şekilde, bazıları P'ye karşı NP problemi, yani DFA'ların kesişimsizliği de dahil olmak üzere çok derin CS alanları ile bağlanmıştır . ayrıca başka bir açık alan, örneğin bir DFA için minimal NFA'nın hesaplanmasıdır .

  • Ayrıca bazı ilgili içgörü için cstheory.se hakkında bu yarı ünlü / yüksek oylanmış soruya bakın : Sonlu otomata çalıştıktan sonra elde etmem gereken aydınlanma nedir?

  • DFA'ların NFA'lara karşı çok çeşitli uygulamaları vardır ve ikisi arasındaki yazışmalar genellikle bunlardan yararlanır. dize örüntüsü eşleşmesi yukarıda belirtilmiştir, ancak DFA / NFA yapıları (otomatik) konuşma tanımada sıklıkla kullanılır. bkz. bu alıntılanan makale: Konuşma Tanımada Ağırlıklı Sonlu Durum Transdüserleri / Mohri, Pereira, Riley


2

DFA'lar, bir sonraki durumları bir işlev tarafından belirlendiğinden ve NFA'lar bir kullanıcının çıktı olarak istediklerini kolayca ifade etmesine yardımcı olduğundan, NFA'dan daha kolay bir uygulamaya sahiptir, çünkü NFA birden çok yol arasında seçim yapabilir. ve epsilon-NFA, herhangi bir girdi sembolü almadan geçişlerin yapılabileceği bir NFA uzantısıdır.


2
Özetle: NFA'lar, çok derin bir fikir olan determinizm fikrini aktarıyor ("mucitleri", Michael O. Rabin ve Dana S. Scott, bu fikirler için Turing ödülünü kazandı)
Ran G.

1

DFA'ların durumlarının sayısı hakkında kötü bir şey var. Bu, patlar bazen .

Kısacası, eğer devlet sayısı çok yüksekse (yine de sonlu ama fiziksel bir dünyada yaşıyoruz.), O zaman biraz yavaşlama pahasına karmaşıklıkla başa çıkmak için soyutlama seviyesini arttırmanız gerekir. NFA'lar ve AFA'lar gibi diğer modeller, normal dilleri temsil etmek için daha özlü yollar sunacaklardır.

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.