Evet, doğru bilgisayarların deterministic autoate olduğunu. Deterministik olmayan modeller teorik amaç için daha kullanışlıdır, bazen deterministik çözüm tanım için açık değildir (veya problem ifadesi söyler) ve çözümü bulmak çok zor değildir. Öyleyse, bir yaklaşım, ilk önce, tasarımını nispeten kolay bir şekilde belirleyici olmayan bir model tasarlayıp daha sonra onu belirleyici bir model haline getirmeye çalışmaktır. Aşağıda, bir örnekle ne demek istediğimi göstermeye çalıştım. Düzenli ifadeyi göz önünde bulundurun:
(01)*01(0 + 1)*
Şimdi varsayalım ki, yukarıda RE tarafından oluşturulan dil için DFA çekmeniz istenir.
FAS tasarlama Benim bilgimle, bunu biliyorum (1) bir *
normal ifadede mevcut ben FA döngü tekabül gerek belirtilmiştir (2) concatenate işlemleri gibi a.b
benzer yollarla şey: .(q0)─a→(q1)─b→(q2)
Öyleyse ilk denememde şöyle bir NFA çekerdim:
Bu düşünce değil bir deterministik bir çözüm ama kolayca verilen normal ifadeyi kullanarak dizayn edilebilir çok basit FA görünüyor. Yukarıdaki normal ifade ile NFA'm arasındaki benzerliği gösterecek analojim aşağıdaki gibidir:
- Q 0 durumundaki döngü için olmalıdır
(01)*
01
(sonra (01)*
) verir(q0)─0→(q1)─1→(q2)
(0 + 1)*
0, 1 etiketi için q 2 durumunda bir öz döngü verir
Analojime göre, yukarıda çizdiğim FA'nin verilen RE'den çekmek için nispeten basit olduğunu düşünüyorum. Neyse ki, sonlu otomatlar sınıfında, her deterministik olmayan model, eşdeğer bir deterministik olana dönüştürülebilir. Bir NFA'yı DFA'ya dönüştürmek için algoritmik bir yöntemimiz var . Böylece NFA'nın üstünü DFA'ya kolayca dönüştürebilirim:
Diğer kısım ne yazık ki deterministik olmayan bir modelin deterministik bir modele dönüştürülmesi her zaman mümkün değildir, örneğin deterministik aşağı itme otomatiği sınıfı deterministik aşağı itme otomatiği "check venn diagram " sınıfının alt kümesidir ve her zaman dönüştüremezsiniz PDA içine bir NPDA.
Genellikle, deterministik olmayan bir çözümü deterministik olana dönüştürmenin mümkün olmadığı durumlarda, deterministik olmayan bir çözüm yardımıyla, deterministik çözümü, tam alan yerine alt-alanda (ya da kısmi alan) söyleriz. Veya çözümü elbette size en uygun çözümü vermeyecek başka yollarla (örneğin açgözlü yaklaşım) tanımlarız .
Bazen determinizm olmayan, bazı karmaşık problemlerin / çözümlerin kesin ve etkili bir şekilde tanımlanması için etkili bir mekanizmadır; örneğin, deterministik olmayan makineler, geriye dönüş yöntemiyle arama ve geri arama algoritması modeli olarak hizmet verebilir (okuma: Dizi-iz bırakma kullanarak deterministik olmayan modelde nasıl işlenir? ). Muhalif deterministik modeller daha verimli, en aza indirgenmiş ve daha az gereksiz çözümler sunar.
Burada ayrıca Wikipedia'da Nondeterministic algoritmasının kullanımı hakkında bir alıntı yapmak istiyorum :
Algoritma tasarımında, algoritmistik olmayan algoritmalar, algoritma tarafından çözülen problem, doğal olarak çoklu sonuçlara izin verdiğinde (veya sonucun keşfedildiği, her biri eşit olarak tercih edilebilir olan çoklu yollarla tek bir sonuç olduğunda) kullanılır. Önemli olarak, algoritmamatik olmayan algoritmanın ürettiği her sonuç, algoritmanın çalışırken seçtiği seçeneklerden bağımsız olarak geçerlidir.
Bilişim teorisindeki en ünlü çözülmüş soru olan P - NP de dahil olmak üzere, çok sayıdaki problem, klasik olmayan algoritmalar ile kavramsallaştırılabilir.
As @keshlam aynı zamanda onun sözü comment : "gerekirci olmayan makinalar" pratikte olduğu için kullanılan bazı sürecinin sonucundan herhangi öngörülemezli¤ine bakın. Örneğin, Eşzamanlı programlar deterministik olmayan davranış sergiler - aynı programın aynı girdiyle iki yürütülmesi farklı sonuçlar üretebilir ( eşzamanlılık kontrol mekanizması uygulanmadığında). Bu konuda "Determinizmin Yararlılığı" kısmına bakınız .
Ayrıca aşağıdaki linkleri okumanızı tavsiye ederim:
1. Determinizm ile rastgelelik arasındaki fark nedir?
2. 9.2.2 Nondeterministik ve Olasılık Modelleri: (a). Belirsiz olmayan: Doğanın ne yapacağına dair hiçbir fikrim yok. (b). Olasılık: Doğayı gözlemliyorum ve istatistik topluyorum.
3. Karakteristik olmayan programlama