Sonlu otomatalar okuduktan sonra elde etmem gereken aydınlanma nedir?


247

Eğlenmek için Hesaplama Teorisini revize ettim ve bu soru bir süredir beni rahatsız ediyor (lisansımdaki Automata Teorisini öğrendiğimde hiç düşünmemiştim). Öyleyse “neden” tam olarak deterministik ve deterministik olmayan sonlu otomataları (DFA / NFA) inceliyoruz? İşte bu nedenle, çözme işleminden sonra elde ettiğim bazı cevaplar var ancak yine de 'aha' anına genel katkılarını göremiyorlar:

  1. Ne olduklarını ve yeteneklerini kısıtlayabilenleri incelemek
    • Neden?
  2. Çünkü onlar teorik hesaplamanın temel modelleri ve diğer daha yetenekli hesaplama modellerinin temelini oluşturacaklardı.
    • Onları 'temel' yapan nedir? Sadece bir bit depolama ve durum geçişine sahip olmaları mı?
  3. Tamam, ne olmuş yani? Tüm bunlar hesaplanabilirlik sorununa cevap vermeye nasıl katkıda bulunuyor? Turing makineleri bunu gerçekten iyi anlamaya yardımcı oluyor ve PDA'lar, DFA / NFA'lar / Regex'ler vb. Gibi 'daha az' hesaplama modelleri var.

Yani bir dereceye kadar “anlasam” da, bu soruyu kendime cevaplayamıyorum? 'Neden D / N-FA'leri araştırıyorsun' 'açıklamasını en iyi nasıl yaparsınız? Cevaplamak istedikleri soru nedir? Bu nasıl yardımcı olur ve neden Otomata Teorisi'nde ilk öğretilen şeydir?

Not: Bu şekilde uygulanabilecek çeşitli sözlükler ve kalıp eşleştiricilerden haberdarım. Bununla birlikte, pratikte ne için kullanılabileceğini bilmek istemiyorum, ancak hesaplama teorisini inceleyerek sonuçlanma / kullanım / buluş / tasarım nedenleri neydi? Tarihsel olarak konuşursak, bununla neyin başlamasına neden oldu ve hangi 'aha' anlayışına öncülük etmesi gerekiyor? Automata Teorisi'ni öğrenmeye yeni başlayan CS öğrencilerine önemini açıklayacak olsaydınız, bunu nasıl yaptınız?


10
Öyleyse, bu TCS'deki bir araştırma seviyesi sorusu mu?
Hendrik Ocak

13
Bir konu hakkında büyük bir resim perspektifi isteyen bir araştırma sorusu değildir. Burada bir takım sorularımız var. Yorumlarda bir tartışma başlatmak yerine, bu tür soruların uygunluğunu daha fazla tartışmak isterseniz meta üzerinden bir soru göndermenizi tavsiye ederim.
Suresh Venkat

6
PhD: Sorunuz çok güzel cevaplar verdi, ben de bunun için teşekkür ederim. İfadelerinizde dürüsttünüz ve sizi veya sorunuzu diskalifiye etmek niyetim değildi. Aslında yorumumun önerdiği şeyden başka bir yol bu değil: SSS'deki bu alıntıyı kullanarak çok kolay bir şekilde reddedilen başka sorular gördüm. Haklısın Suresh: Bu, tartışmaya başlamanın yeri değil. Üzgünüm.
Hendrik Ocak

1
@HendrikJan - Oh merak etme! Metin tonu gizler. Asla öyle demek istemedim. Bana bunun bir araştırma sorusu olup olmadığını sorduğunu sanıyordum.
Doktora

16
Kamu forumlarında nadiren karşılaşıyorum.
Lucas

Yanıtlar:


342

Şahsen birkaç Aha'dan keyif aldım ! Temel otomat teorisini inceleyen anlar. NFA'lar ve DFA'lar bir bütün olarak teorik bilgisayar bilimi için bir mikro kozmos oluşturuyor.

  1. Determinizm Verimliliğe Yol Açar mı? Bir dil için minimal deterministik otomatın, üstel olarak minimal deterministik olmayan bir otomatdan daha büyük olduğu standart örnekler vardır. Turing makineleri için bu farkı anlamak (teorik) bilgisayar biliminin özüdür. NFA'lar ve DFA'lar, determinizm ile determinizm dışı arasındaki kesin farkı açıkça görebileceğiniz yeri biliyorum.
  2. Hesaplanabilirlik! = Karmaşıklık. NFA'ler ve DFA'ler hem normal dilleri temsil ve içinde eşdeğerdir neyi onlar hesaplamak. Nasıl hesaplandıklarında farklılık gösterirler .
  3. Makineleri Dilleri Hassaslaştırın. Bu, neyi hesapladığımız ve nasıl hesapladığımız konusunda farklı bir yaklaşımdır. Hesaplanabilir dilleri (ve işlevleri), bir eşdeğerli otomat sınıfını tanımlamak olarak düşünebilirsiniz. Bu, sadece neye odaklanmamamız gereken TCS'de temel bir bakış açısı değişikliği değil, bir algoritma tasarlarken ya da karmaşıklık sınıflarının incelenmesinde farklı alanların nasıl olduğunu anlamaya çalışırken nasıl doğru "nasıl" seçmeye çalıştığımızdır.
  4. Kanonik Temsilin Değeri. DFA'lar, kanonik bir temsili kabul eden bir veri yapısının en iyi örneğidir. Her normal dilin benzersiz, minimal bir DFA'sı vardır. Bu, minimum DFA verildiğinde, dilin dahil edilmesi, tamamlanması ve bir kelimenin kabulünün kontrol edilmesi gibi önemli işlemlerin önemsiz hale geldiği anlamına gelir. Kanonik gösterimleri tasarlamak ve kullanmak, algoritmalar geliştirirken yararlı bir numaradır.
  5. Kanonik Gösterimlerin Yokluğu. Düzenli ifadelerin veya NFA'nın kanonik olarak kabul edilmiş bir temsili yoktur. Dolayısıyla yukarıdaki noktaya rağmen kanonik temsiller her zaman mevcut değildir. Bu bilgiyi bilgisayar bilimindeki birçok farklı alanda göreceksiniz. (örneğin, önerme mantık formülleri de ROBDD'ler yaparken kanonik gösterimlere sahip değildir).
  6. Kanonik Temsilin Maliyeti. NFA'lar ve DFA'lar arasındaki farkı algoritmik bir bedava öğle yemeği teoremi olarak bile anlayabilirsiniz . Bir NFA arasındaki dilin dahil edilmesini kontrol etmek veya tamamlamak istiyorsak, onu belirleyebilir ve minimize edebilir ve oradan devam edebilirsiniz. Ancak, bu "azaltma" işleminin bir maliyeti var. Bilgisayar biliminin diğer bazı alanlarında ücret karşılığı kanonizasyon örnekleri göreceksiniz.
  7. Sonsuz! = Kararsız. Yaygın bir yanılgı, sınırsız nitelikteki sorunların doğası gereği çözülemez olduğu şeklindedir. Düzenli diller, sonsuz sayıda dizgi içerir ve yine de, birçok onaylanabilir özelliğe sahiptir. Düzenli diller teorisi size yalnızca sonsuzluğun karar verilemezlik kaynağı olmadığını göstermektedir.
  8. Sonsuzluğunu Otomat'ın Avucunda Tut. Sonlu bir otomatı yalnızca sonsuz kümeleri temsil etmek için bir veri yapısı olarak görüntüleyebilirsiniz. Bir ROBDD, sonlu kümeleri temsil eden olarak anlayabileceğiniz Boolean işlevlerini temsil eden bir veri yapısıdır. Bir sonlu otomat, bir ROBDD'nin doğal, sonsuz bir uzantısıdır.
  9. Mütevazi İşlemci. Modern bir işlemcinin içinde çok şey var, ancak bunu sınırlı bir otomat olarak anlayabilirsiniz. Sadece bu gerçekleşme bilgisayar mimarisini ve işlemci tasarımını bana daha az korkutucu hale getirdi. Ayrıca, pratikte durumlarınızı dikkatlice yapılandırır ve manipüle ederseniz, sonlu otomatlara çok daha fazla ulaşabileceğinizi gösterir.
  10. Cebirsel Bakış Açısı. Düzenli diller, sözdizimsel bir monoid oluşturur ve bu açıdan incelenebilir. Daha genel olarak, daha sonraki çalışmalarda, bazı hesaplama problemlerine karşılık gelen doğru cebirsel yapının ne olduğunu sorabilirsiniz.
  11. Kombinatoryal Bakış Açısı. Sonlu bir otomat etiketli bir grafiktir. Bir kelimenin kabul edilip edilmediğini kontrol etmek, etiketli bir grafikte bir yol bulunmasını azaltır. Otomat veri algoritmaları grafik dönüşümlerini tutar. Normal dillerin çeşitli alt aileleri için otomat yapısını anlamak, aktif bir araştırma alanıdır.
  12. Cebir-Dil-Kombinatorik aşk üçgeni. Myhill-Nerode teoremi, bir dille başlamanıza ve bir otomat veya bir sözdizimsel monoid oluşturmanıza izin verir. Matematiksel olarak, çok farklı matematiksel nesne türleri arasında bir çeviri elde ediyoruz. Bu çevirileri akılda tutmak ve bilgisayar biliminin diğer alanlarında aramak ve uygulamanıza bağlı olarak aralarında dolaşmakta fayda var.
  13. Matematik, Büyük Resimlerin Dilidir. Düzenli diller NFA'lar (grafikler), düzenli ifadeler (biçimsel dilbilgisi), salt okunur Turing makineleri (makine), sözdizimsel monoidler (cebir), Kleene cebirleri (cebir), monadik ikinci dereceden mantık, vb. İle tanımlanabilir. fenomen, önemli ve kalıcı kavramların, her biri fikir anlayışımıza farklı tatlar getiren birçok farklı matematiksel karakterizasyona sahip olmasıdır.
  14. Çalışan Matematikçi İçin Lemmalar. Pumping Lemma, farklı problemleri çözmek için kullanabileceğiniz teorik bir araç için harika bir örnek. Lemmas ile çalışmak, var olan sonuçları oluşturmaya çalışmak için iyi bir uygulamadır.
  15. Gerekli! = Yeterli. Myhill-Nerode teoremi, bir dilin düzenli olması için size gerekli ve yeterli koşulları verir. Pumping Lemma bize gerekli koşulları verir. İkisini karşılaştırmak ve farklı durumlarda kullanmak, matematiksel pratikte gerekli ve yeterli koşullar arasındaki farkı anlamama yardımcı oldu. Ayrıca, yeniden kullanılabilir bir gerekli ve yeterli koşulun bir lüks olduğunu da öğrendim .
  16. Programlama Dili Perspektifi. Düzenli ifadeler bir programlama dilinin basit ve güzel bir örneğidir. Birleştirmede, sıralı kompozisyonun bir analoguna sahipsiniz ve Kleene yıldızında yinelemenin analoğuna sahipsiniz. Düzenli ifadelerin sözdizimini ve anlamını tanımlarken, endüktif tanımları ve kompozisyon anlamını görerek programlama dili teorisi yönünde bir adım atıyorsunuz.
  17. Derleyici Perspektifi. Düzenli bir ifadeden sonlu bir otomatizasyona çeviri aynı zamanda basit, teorik bir derleyicidir. Ayrıştırma, ara kod oluşturma ve derleyici optimizasyonları arasındaki farkı, normal bir ifade okuma, bir otomat oluşturma ve ardından otomasyonu en aza indirme / belirleme nedeniyle fark edebilirsiniz.
  18. Yinelemenin Gücü. Sonlu bir otomatta bir döngü ve bir döngü olmadan neler yapabileceğinizi görünce, yinelemenin gücünü anlayabilirsiniz. Bu, devreler ve makineler arasındaki veya klasik mantık ile sabit nokta mantığı arasındaki farkları anlamaya yardımcı olabilir.
  19. Cebir ve Koalgebra. Düzenli diller, cebirsel bir yapı olan sözdizimsel bir monoid oluşturur. Sonlu otomata, kategori teorisi dilinde neye kömürbütçe denildiğini oluşturur. Deterministik bir otomat durumunda, cebirsel ve bir kömürbilimsel temsil arasında kolayca hareket edebiliriz, ancak NFA'larda bu o kadar kolay değil.
  20. Aritmetik Bakış Açısı. Hesaplama ve sayı teorisi arasında derin bir bağlantı vardır. Bunu sayı teorisinin gücü ve / veya hesaplamanın evrenselliği ile ilgili bir ifade olarak anlamayı seçebilirsiniz. Genellikle sonlu otomataların eşit sayıda sembolü tanıyabildiğini ve parantezle eşleşecek kadar saymadıklarını bilirsiniz. Ama ne kadar aritmetik yapabiliyorlar? Sonlu otomatalar Presburger aritmetik formüllerine karar verebilir. Presburger aritmetiği için bildiğim en basit karar prosedürü bir formülü otomatize indirgiyor. Bu, Hilbert'in 10. problemine ilerleyebildiğiniz bir bakış ve Diophantine denklemleriyle Turing makineleri arasındaki bağlantının keşfedilmesine yol açan çözünürlüğüdür.
  21. Mantıksal Perspektif. Hesaplama tamamen mantıksal bir bakış açısıyla anlaşılabilir. Sonlu otomatlar, sonlu sözcükler üzerinde zayıf, monadik ikinci dereceden bir mantıkla tanımlanabilir. Bu benim bir hesaplama aygıtının mantıksal karakterizasyonuna en sevdiğim, önemsiz olmayan örnek. Tanımlayıcı karmaşıklık teorisi, birçok karmaşıklık sınıfının da tamamen mantıksal karakteristiklere sahip olduğunu göstermektedir.
  22. Sonlu Otomatlar, Hiç Düşünmediğiniz Yerlerde Saklanıyor. (Martin Berger'in kodlama teorisi ile bağlantısı üzerine yaptığı yorumdan bahşeder) Kimyada 2011 Nobel Ödülü, yarı kristallerin keşfedilmesine verildi. Yarı-kristallerin arkasındaki matematik, aperiodik eğimlere bağlıdır. Uçağın spesifik bir aperiodik döşemesine, uçurtma şeklinden ve papyon şeklinden oluşan Cartwheel Döşeme adı verilir. Bu şekilleri 0s ve 1s cinsinden kodlayabilir ve ardından bu dizilerin özelliklerini inceleyebilir, bu dizilerin kod dizilerini kodlar. Aslında, 0 ile 01 ve 1 ile 0 arasında bir harita çizerseniz ve bu haritayı 0 basamağına tekrar tekrar uygularsanız, 0, 01, 010, 01001, vb. Elde edersiniz. Bu dizelerin uzunluklarının Fibonacci dizisini takip ettiğini gözlemleyin. Bu şekilde üretilen kelimelere Fibonacci kelimeleri denir. Penrose yataklarında gözlenen bazı şekil dizileri Fibonacci kelimeleri olarak kodlanabilir. Bu kelimeler otomatik-teorik bir perspektiften incelenmiştir ve bazı kelimelerin ailelerinin sonlu otomata tarafından kabul edildiğini tahmin etmek ve hatta Hopcroft'un minimizasyon algoritması gibi standart algoritmalar için en kötü durum davranışlarından örnekler sunmak. Lütfen başım döndüğünü söyle.

Devam edebilirdim. (Ve devam eder.) * Kafamın arkasında otomata sahip olmak ve onları şimdi hatırlamak ve daha sonra yeni bir kavramı anlamak veya üst düzey matematiksel fikirler hakkında sezgiler elde etmek için faydalı buluyorum. Yukarıda bahsettiğim her şeyin bir kursun ilk birkaç dersinde, hatta bir ilk kursa iletilebileceğinden şüpheliyim. Bunlar, bir otomata teorisi dersinin ilk derslerinde yapılan ilk yatırıma dayanan uzun vadeli ödüllerdir.

Başlığınıza değinmek için: Ben her zaman aydınlanma arayışı içinde değilim, ancak yaptığım zaman sonlu otomataları tercih ediyorum. Susamış arkadaşım.


27
Güzel liste. Otomatın, Schuetzenberger'in öncülüğünde kodlama teorisi üzerine ilginç bir bakış açısı sağladığını eklemek isterim. Ek olarak, modern eşzamanlılık teorisi ve süreç teorisi, otomataların paralel olarak oluşturulabildiği ve eylemleriyle senkronize olabileceği otomata teorisinin bir genellemesidir.
Martin Berger

6
Vay. (Son cümle için + 0.5. :-)
LarsH

6
Sadece bunu + 1'lemek için sadece TCS.SE'ye katıldı.
Aralık'ta

5
Bu listedeki hemen hemen her şeyi bilmeme rağmen, yine de bir şekilde onu okuduğum için aydınlanmış hissediyorum. (Ayrıca, (Ve)) * beni kıkırdattı.)
CA McCann

2
Dürüst olmak gerekirse, bu şeylerin çoğunu hiç düşünmedim (ve hiç duymadığım teoremlerin bazıları) ve hesaplama teorisinde bir ders aldım. Bu vahyleri belirtmek için özellikle iyi bir öğretmen veya müfredat olması gerekir mi?
Ken Bloom,

33

N / DFA'ları incelemek için birçok teorik sebep vardır. Hemen akla gelen iki:

  1. Turing makineleri (bizce) hesaplanabilir her şeyi yakalar. Ancak şunu sorabiliriz: Bir Turing makinesinin hangi parçaları "temel" dir? Bir Turing makinesini çeşitli şekillerde sınırladığınızda ne olur? DFA'lar çok ciddi ve doğal bir sınırlamadır (hafızayı almak). PDA'lar daha az ciddi bir sınırlamadır, vb. Bana çok doğal ve basit bir soru gibi geliyor.

  2. Turing makinelerinin sonsuz bir kasete ihtiyacı vardır. Evrenimiz sonludur, yani bir anlamda her bilgisayar cihazı bir DFA'dır. Çalışmak için önemli ve yine doğal bir konu gibi görünüyor.

Neden bir DFA'yı araştırması gerektiğini sormak , asıl ilginç olan eksiklik teoremi olduğunda, Tanrı'nın bütünlük teoremini neden öğrenmesi gerektiğini sormaya benzer .

Otomata teorisinde ilk konu olmalarının nedeni, daha az karmaşık olanlardan daha karmaşık modlara çıkmanın doğal olmasıdır.


2
# 1 mantıklı geliyor ve nedenini görüyorum. Fakat FA'lerden 'ileriye gitme' nedenini nasıl açıklarsınız? ToC hakkında bir şeyler bilenler geçmişe bakıp geriye dönebilir. 'Neden' otomata teorisini öğrenmeye başlayan ve sadece FU'ları bilen öğrencilere en iyi nasıl açıklanabilir? Sadece temelden beri bir bit makineyle başladığımızı mı söylüyoruz - neden? Neden cevaplamak en iyisi? Toplam noob için ToC'ye bu soruyu cevaplarken biraz ışık alır mısın :)
Doktora

2
"İleri" argümanı (Sariel'in dediği gibi) devlet makinelerinin belki de bilgisayar cihazlarının en temelini oluşturduğu gerçeğinden geliyor. Sen bir devletsin: bir şey olur ve sonra yeni bir duruma geçersin. Markov zincirlerinin (makine öğrenmesinde çok önemli olan) sadece muhtemel FSM'ler olduğuna dikkat edin.
Suresh Venkat

31

Cevapların geri kalanına bir bakış açısı daha eklemek için: çünkü aslında Turing makinelerinin aksine sınırlı otomata sahip şeyler yapabilirsiniz.

Turing makinelerinin hemen hemen ilginç herhangi bir özelliği kararsız. Aksine, sonlu otomatlarda hemen hemen her şey karar verilebilir. Dil eşitliği, içerme, boşluk ve evrenselliğin hepsi kesindir. Sonlu otomatalarla birleştiğinde, aklınıza gelebilecek hemen hemen her işlem altında ve bu işlemlerin hesaplanabilir olduğunu, sonlu otomata ile yapmak isteyeceğiniz hemen hemen her şeyi yapabilirsiniz.

Bu, sonlu otomata kullanarak bir şey yakalayabiliyorsanız, analiz etmek için otomatik olarak birçok araç edinebilirsiniz. Örneğin, yazılım testlerinde, sistemler ve teknik özellikleri sonlu otomata olarak modellenebilir. Daha sonra sisteminizin spesifikasyonu doğru bir şekilde uygulayıp uygulamadığını otomatik olarak test edebilirsiniz.

Tornalama makineleri ve sonlu otomatalar bu nedenle insanlara ilginç ve her yerde bulunan bir kontrastı öğretir: daha açıklayıcı güç, daha az izlenebilirlik ile el ele gider. Sonlu otomatlar fazla tanımlayamaz, ama en azından onlarla bir şeyler yapabiliriz.


2
“... aslında Turing makinelerinin aksine, sınırlı otomata sahip şeyler yapabilirsiniz.”
pt'yi

27

Durum. birisinin dünyayı (belirli problemler için) sonlu bir durum alanı olarak modelleyebileceğini ve birisinin bu ortamlarda hesaplamayı düşünebileceğini öğrenmeniz gerekir. Bu basit bir içgörü ama herhangi bir programlama yaparsanız son derece kullanışlıdır - durumla tekrar tekrar tekrar karşılaşırsınız ve FA size bunları düşünmeniz için bir yol sunar. Bunun, bütün bir sınıfı öğretmek için yeterli bir bahane olduğunu düşünüyorum. Elbette devlet deterministik veya deterministik olmayabilir. Böylece DFA ve NFA, ancak aralarında vb.

Öğrenilecek ikinci şey, Halting teoremidir. Hangi Godel eksiklik teoremi ile ilgilidir. (Her şeyi hesaplayabilen bir makine inşa edemezsiniz ve kanıtlayamayacağınız veya ispatlayamayacağınız matematiksel iddialar vardır ve bunun gibi aksiyomlar olarak alınması gerekir. Yani, sonlu bir tanımı olmayan veya gerçek olmayan bir dünyada yaşıyoruz. oracles - yey bizim için!)

Şimdi, lisans eğitimimi matematikte yaptım ve neden öğrendiğinle ilgili hiçbir fikrin olmadığını öğrendiğin fikrine alışırsın (grup teorisi, ölçü teorisi, küme teorisi, Hilbert uzayları, vb. , BTW]). Öğrenmeyi öğrenmekle ilgili söylenecek bir şey var - bir dahaki sefere bazı tuhaf matematik dersleri almanız gerekiyor (çünkü gerçek dünyada orada bir şeyler yapmak için kullanmanız gerekiyor), çok garip görünüyor. Spesifik olarak, öğrenilecek üçüncü şey matematiksel olgunluktur - şeyler hakkında dikkatli bir şekilde tartışabilmek, ispatların doğru olup olmadığını bilmek, ispatları yazmak vb. Zaten varsa, bu kurs kolaydır ve siz de umursamazsınız. Bunu neden öğreniyorsun?

Bunların dışında, kurs, diğer her şey gibi, zamanınızın tamamen israfıdır. Özellikle, bu şeyleri bilmeden mutlu bir hayat yaşayabilirsiniz. Ancak bu kelimenin tam anlamıyla tüm bilgiler için geçerlidir. Az çok. Benim için üniversitedeki bir kurs, öğrendikten sonra dünyaya farklı şekilde bakarsanız, zaman ayırmaya değer. Bu kesinlikle dünya hakkındaki düşüncelerimi değiştiren derslerden biri. Daha ne sorabilirsin?


21

Orijinal olarak çalışılmasının nedeni olmamakla birlikte, sonlu otomatlar ve tanıdıkları normal diller daha karmaşık matematiksel teoriler için yapı taşları olarak kullanılabilecek kadar izlenebilir niteliktedir. Bu bağlamda özellikle otomatik grupları (elemanların düzenli bir dilde dizelerle temsil edilebildiği ve elemanların grup üreteçleri tarafından hesaplanabildiği sonlu durum dönüştürücülerle hesaplanabileceği gruplar ) ve sofik alt kaydırmaları (vardiya uzayının alt kaydırmaları) görün. yasak kelimeler normal bir dil oluşturur). Öyleyse, bilgisayar bilimlerinden ziyade saf matematikle ilgileniyor olsanız bile, onları incelemenin nedenleri var.

Sonlu otomatlar, diğer nesne türleri için algoritmaların tasarımında da kullanılmıştır. Örneğin, tek boyutlu bir hücresel otomatın tersinir olup olmadığını test etmek için bir Culik algoritması , belirli NFA'ların özelliklerini inşa etmeyi, değiştirmeyi ve test etmeyi içerir. Ayrıca, 1986 FOCS Natarajan tarafından yayınlanan bir yazı , mekanik montaj hatlarının tasarımında belirli bir problemin sonlu otomatlar hakkında bir hesaba indirilerek nasıl çözüleceğini gösterdi.


18

Siz (en azından) iki farklı soru soruyorsunuz: (a) Günümüzde sonlu otomata teorinin hangi bölümleri var? (b) İlk etapta neden sonlu otomatlar geliştirildi? Bence bu sonuncuyu ele almanın en iyi yolu, eski gazetelere bakmaktır;

İşte ilk iki paragraf:

Turing makineleri, dijital bilgisayarların soyut prototipi olarak kabul edilir; Bununla birlikte, sahadaki çalışanlar, bir Turing makinesinin nosyonunun, gerçek bilgisayarların doğru bir modeli olarak hizmet edemeyecek kadar genel olduğunu hissettiler. Basit hesaplamalar için bile, bir Turing makinesinin verilen herhangi bir hesaplama için ihtiyaç duyduğu bant miktarına priori bir üst sınır vermenin imkansız olduğu bilinmektedir . Bu, Turing'in konseptini gerçekçi kılmıyor.

Son birkaç yılda literatürde sonlu bir otomat fikri ortaya çıkmıştır. Bunlar, bellek ve hesaplama için kullanılabilecek yalnızca sınırlı sayıda dahili duruma sahip makinelerdir. Keskinlik üzerindeki kısıtlamanın fiziksel makine fikrine daha iyi bir yaklaşım getirdiği görülmektedir. Elbette, bu tür makineler Turing makineleri kadar yapamaz, ancak pratik uygulamalarda bu işlevlerin çok azı ortaya çıktığından, keyfi bir genel özyinelemeli işlevi hesaplayabilme avantajı sorgulanabilir.

Kısacası, sınırlı kaynakları olan gerçek bilgisayarların bir modeli olarak geliştirilmiştir.


16

Diğer bir sebep, göreceli olarak pratik teorik modeller olmalarıdır . Bir Turing makinesi, sonsuz bandın imkansızlığından ayrı olarak, bir bilgisayarı programlamanın neye benzediği için uygunsuz bir durumdur (bunun başlamak için iyi bir benzetme olmadığını unutmayın!). Bununla birlikte, PDA'lar ve DFA'lar, bir PDA / DFA tasarımının çoğu zaman kolayca gerçek bir programa dönüştürülebilmesi anlamında gerçek programların modelleri olmak için oldukça uygundur. Derleyici tasarımı, örneğin, onları yaygın olarak kullanır. Dolayısıyla teori ile pratik arasındaki bu tür bağlantı noktalarında, hepsinin nasıl birleştiğine ve ne yapıp ne yapamayacağımıza bir göz atıyoruz.


10

"Yaşayan İkili Toplayıcı" Oyununa göz atın: http://courstltc.blogspot.com/2012/12/living-binary-adder-game.html Bu oyunu DFA ile ilgili ilk bölümlerdeki öğrencilerime sunardım / NFA. Otomat Teorisinde iki önemli şeyi gösterir:

  1. Zihinsel bir süreci basit bir mekanik işleme nasıl dönüştürürüm?
  2. Soyutlamanın anlamı ne? Yukarıdaki C ve Z durumları gibi iki durum bir şey olabilir: bir bilgisayardaki transistörler, bir hidrolik mekanizma veya iki insan oyuncu!

Bu, bazen öğrencilerime "Aha" anını da getiriyor.


9

DFA kavramı, birçok soruna etkili çözümler tasarlamak için çok faydalıdır. Bir örnek, ağ oluşturmadır. Her protokol bir durum makinesi olarak uygulanabilir. Çözümü bu şekilde uygulamak, kodu daha basit ve daha basit hale getirir, daha düşük bir hata oranı anlamına gelir. Ayrıca, kodda yapılan değişikliklerin daha kolay ve daha düşük bir etkiye sahip olduğu, yine daha düşük bir hata oranına sahip olduğu anlamına gelir.

Bazı insanlar bir ağ protokolünü bir durum makinesi olarak görmekte zorlanırlar;


Çok sindirici geliyor ama biraz daha açıklayabilir misiniz? o ise bir devlet makinesi gibi bir ağ protokolü hayal etmek zor. teşekkür ederim.
hkoosha

3

Aslında, öğrencilerim bazen tam olarak bunu soruyorlar - sömestrlerin büyük bir kısmını sonlu otomata harcadıktan ve sonunda Turing makinelerine ulaştıktan sonra. Daha güçlüsü mevcut olduğunda neden daha zayıf bir formalizm için bu kadar zaman harcıyorsunuz? Bu yüzden ifade gücü ile analitik karmaşıklığın içsel değişimini açıklıyorum. Daha zengin modellerin analizi genellikle daha zordur. DFA - TM ikilemi aşırıdır, çünkü üyelik sorunu biri için önemsizdir ve diğeri için tartışılmazdır. Daha az uç bir örnek DFA ve PDA olacaktır. Sonuncusu için üyelik sorunu etkin bir şekilde çözülebilir hale geliyor, ancak çözüm hiç de önemsiz değil. Bunu matematik ve fen dallarının çoğunda görüyoruz: mümkün olduğunca eksiksiz bir anlayış elde etmek için basit bir model inceleyin, bu da genellikle daha karmaşık modellere de ilişkin öngörülere yol açar.


-4

FM’in Turing makinelerinden “daha ​​az” olduğunu söyleyen birçok cevap görüyorum.

Mezuniyet sonrası sınıftaki birinci odak noktası, ayrımcılık yerine denkliklerinde yatıyordu. Çalıştığımız her FSM modeli için, onların Turing Makinelerine denkliğini kanıtlamak zorunda kaldık. Bu, FSM'ye bir Turing Makinesi uygulanarak yapılır. IIRC, ayrıca, bir TM'yi uygulamayan soğuk bazı bilgisayar modelleri üzerinde çalıştık, ama bunların ne olduğunu unuttum. Mesele şu ki, bir TM uygulayabiliyorsanız, çalıştırılan problem için yeterince büyük bir bant analogu verilen herhangi bir TM programını model üzerinde çalıştırabilirsiniz.

Sorunun cevabının itici gücü şuydu: TM, temel hesaplanabilirlik modelidir, ancak kullanışlı makineler inşa etmek söz konusu olduğunda pek pratik değildir. Dolayısıyla, FSM modelleri.

Bu, aynı zamanda (1984), FORTH dilini keşfettiğimde, bana içtenlikle getirildi. Bu yürütme motoru, bir Dual Stack PDA'nın tamamen gerçekleştirilmesi üzerine inşa edilmiştir. Daha derine inerken, aynı motoru ifade derleyicileri altında seviyorum.

Her ne kadar benim için FSM'nin asıl etkisi, 18 yaşındayken Trakhtenbrot ve Korzynski'nin (?) "18 yaşındayken, kariyerimi temel alan bir keşif" kitabını keşfetmesiydi.


1
Nondeterministic Finite Automata ve Turing Machines arasında bir eşitlik kanıtlamadığınızı sanıyorum. OP'nin sorduğu bu özel nesne ve geri kalanımızın "daha az" olduğunu söylüyor.
Vijay D

2
Ve bir FA, FSM ile aynı değildir.
Suresh Venkat
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.