2016-04-12 20 views
2

Basit sonlu durum makinesi yazdım ve bir olayın birden fazla olası sonuca bir durum alabileceği durumlar olduğunu fark ettim. belgelerine https://github.com/jakesgordon/javascript-state-machineSonlu Durum Makinesi: Birden Fazla Durumdan Bir Eyalet

bilmiyorum: Olay E olur Temelde, devlet A'dan, devlet

Şu anda burada yazılı JavaScript Sonlu Durum Makinesi kodunu kullanıyorum

C veya D ya olabilir Bunu mümkün kılan bariz bir yolu gör. Daha çok, belki de bu aslında orijinal tasarımımda bir akış gibi hissediyorum.

Esasen, bir Sonlu Durum Makinesinde, bir geçişin meydana geldiği ve bazı mantıksal sonuçların birden çok durumdan (1'den çoğa) birine dayanan bir durum olması veya mantığın denetlenmesini görmemiz gerekir mi? hangi geçişin gerçekleşmesi gerekiyor (1'den 1'e)?

+0

Akış veya kusur? Aslında sorunuzu anlamıyorum. Sonlu durum makinelerinde (DFA, NFA), giriş sembolüne dayalı olarak bir durumdan çok sayıda geçiş olabilir. –

+0

Üzgünüm, bir yazım hatasıydı. Temel olarak, tüm devlet-makinelerinin deterministik olduğu, yani bir durum ve bir olay verildiği varsayımı altındaydım, sadece bir olası durum sonuç olabilir. Özgün tasarımımda, bir durum ve bir olay verildiğinde, olası iki durumdan biri olabilirdi. Bu temelde bir DFA için yazıldığından beri kullandığım kütüphaneyi kullanmak mümkün değildi. – beichenfan

cevap

3

Tebrikler, yeni keşfettiniz non-deterministic finite state machines! Fikirler, deterministik bir durum makinesininkine benzerdir, ancak aynı giriş sembolü verilen bir durumdan geçiş için birden fazla yol olabilir. Bunun aslında nasıl yapıldığı belirtilmemiş (rastgelelik, kullanıcı girişi, şube çıkışı ve hepsini tek seferde çalıştırma vb.).

+1

Teşekkürler! Bu benim temel sorumuydu. NFA için iyi bir popüler JS kütüphanesi biliyor musunuz? – beichenfan

+1

@beichenfan Hayır, yapmıyorum. Ancak, bir NFA'nın özellikleri tanımsız tanımlandığından, genel amaçlı bir NFA kitaplığı yapmanın bir yolu yoktur. Yani gerçekten ne istediğine karar vermelisin; örneğin, rastgelelik istiyorsanız, eminim ki bir yerlerde iyi bir Markov zincir kütüphanesi vardır. – JesseTG

İlgili konular