Determinizm neden faydalı bir kavram?


23

Bir otomat dijital bir bilgisayarın soyut bir modelidir. Dijital bilgisayarlar tamamen belirleyici; onların herhangi bir zamanda durumları girdi ve ilk durumdan benzersiz bir şekilde tahmin edilebilir.

Gerçek sistemleri modellemeye çalıştığımızda, neden Narateterminizmi Otomata teorisine dahil etmiyorsunuz?


1
NTM'leri ilk başta kimin tanımladığını ve o sırada amaçlarının / amaçlarının ne olduğunu sormak muhtemelen yardımcı olacaktır.
usul

2
Makinenin deterministik olmasının her zaman kodumuz anlamına gelmediğine dikkat edin. Çok görevli / çok iş parçacığı yapan herkes, görev değiştirmenin gerçekleştiği zamanların herhangi bir pratik terimde genellikle tahmin edilemez olduğunu ve davranışlarının deterministik görünmesini sağlamak için açık kilitlemeler tasarlamamız gerektiğini doğrulayabilir. (Temel olarak, eyalette gizli değişkenler vardır.) İletişim aynı sorunu ortaya çıkarır. Dürüst olmak gerekirse, NDA'ların bunları ele almasına yardım edip etmediğini bilemiyorum - ben bir yazılım mühendisiyim, bir bilgisayar bilimcisi değil - ama gerçek dünyada öncülünüz aşırı etkin.
keshlam

Çok iş parçacıklı konuşma hakkında konuştuğunuzda, tartışmalı bir şekilde, belirsizliğe sahip değilsiniz , en azından makineyi oluşturmak için metal ve işletim sistemi düşünürseniz. Ne komik kod kendisi olmasıdır olduğunu deterministik.
Raphael


@keshlam Cevabımı ekledik, @ Tanmoy read cevabımı güncelledi.
Grijesh Chauhan

Yanıtlar:


16

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.bbenzer yollarla şey: .(q0)─a→(q1)─b→(q2)

Öyleyse ilk denememde şöyle bir NFA çekerdim:

incir

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:

  1. Q 0 durumundaki döngü için olmalıdır(01)*
  2. 01(sonra (01)*) verir(q0)─0→(q1)─1→(q2)
  3. (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:

incir. 2

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


@Grijest: böylesine büyük bir detaylandırma için çok teşekkürler. Sadece bir karışıklık: "Muhalif deterministik modeller daha verimli, en aza indirgenmiş ve daha az gereksiz olan çözümleri temsil ediyor." P den daha karmaşık değil mi?)
tanmoy

@tan Aslında "verimli" kelimesini kullanmak yanlıştır. Ve Evet, deterministik olmayan modellerin deterministik olandan daha yetenekli olduğu doğru. Deterministik modellerin kapsadığı sorunların sınıfı deterministik olmayan modelin alt kümesidir.
Grijesh Chauhan

peki, deterministik modeller hangi bağlamda belirleyici olandan daha "verimli" dir?
tanmoy,

@tan Daha fazla işlem yapmak istiyorsanız (örneğin, FA'yi RE'ye dönüştürmek veya lemma pompalamak için kanıtı veya başka birisini açıklamak istiyorsanız ..) varsayalım. Deterministic model size daha iyi sonuçlar verir (bu yüzden verimli dedim).
Grijesh Chauhan

@tan Belirsiz gramerleri anlıyor musunuz?
Grijesh Chauhan

9

Etrafında başka bir şey daha var: otomata ilk önce matematiksel modeller olarak ortaya çıktı. Nondeterminizm oldukça doğaldır, sıklıkla önünüzde açık birkaç yol vardır. Tüm yolların belirli bir sırada sona erdirilmesi gerektiğini ve belki de sınırsız dallarla tıkanmaya başladığını belirtmek yerine dağınık bir yöntem kullanmak yerine, yalnızca sıradancılık kullanın.

Nondeterministic programlama dilleri ana akım değilken, onlar belki Dijkstra'nın başlayarak bir ilustrious geçmişi var GCL . Makineler gittikçe daha fazla çekirdek topladığından (bağımsız işlemciler), bir tür nondeterminizm bütün programlamaya giriyor.


Sanırım cevabın ilk kısmı aslında yanlış. Sence neden otomatlar ilk önce ortaya çıktı? Hem DFA'lar hem de NFA'lar, Turing'in tanımladığı TM'den 10+ yıl sonra tanımlandı. Cstheory
Artem Kaznatcheev

@ArtemKaznatcheev, Turing makine modeli bir otomatondur ve kesinlikle bilgisayarları en az on yıl öncesinden öldürür.
von

evet, ancak insanlar otomata deyince TM anlamına gelmezler ancak sonlu durum otomatları ve doğrudan uzantıları (PDA'lar, NPDA'lar, vb.) anlamına gelir. Oradaki bir tarih için bağladığım soruyu görün ve hem TM'lerin hem de von Neumann mimarisinin şimdi otomata teorisi dediğimiz şeyden bağımsız olarak geliştirildiğini göreceksiniz.
Artem Kaznatcheev

4
@ ArtKaznatcheev, DFA / NFA, PDA, LBA, TM hepsi otomatlardır. Dönüştürücüler gibi (çıktıyla FA, çıktıyla PDA).
von

1
Son paragraf yanlıştır. Prolog GCL'den önce gelir ve hatta hala etrafta ve oldukça yaygındır. Elbette Prolog, PLANNER gibi önceki sayısal olmayan programlama dilleri üzerine inşa edilerek bir vakumda tasarlanmamıştır. Kredi muhtemelen 1965 den Golomb ve Baumert "Backtrack Programlama" gider
takma adı

7

NFA'lar pratikte kullanılabilir, stackexchange'te bu cevaba bakın . Sebebi, powerset yapısının hareket halindeyken simüle edilebilmesidir. Bir NFA'yı deterministik bir bilgisayarda simüle etmek için , NFA'nın olabileceği olası durumları izliyoruz . Tipik olarak, bu sayı küçük olur ve böylece simülasyon hızlı olur. Bu, gerçek güç kaynağı konstrüksiyonunu çalıştırmaktan çok daha pratiktir: pratikte setlerin çoğuna nadiren ulaşılsa bile, ortaya çıkan otomatizasyon çok büyük olabilir.

Nondeterminizm ayrıca NP sınıfını tanımlamak için kullanıldığı hesaplama karmaşıklığı için de önemlidir. (NP sınıfı aynı zamanda örneğin tanıkları kullanan eşdeğer tanımlara da sahiptir.)


cevabınızı anlamak ancak doğru bir şekilde anlayamamaya rağmen. Powetet yapımının sıradancılıkçuluk kullanarak kolayca yapılabileceği gerçeğini açıklayabilir misiniz?
tanmoy

"Nondeterminizm, NP sınıfını tanımlamak için kullanıldığı hesaplama karmaşıklığı için de önemlidir." - sadece determinizmin işe yaramaz olması durumunda, NP'nin yararlı bir kavram olduğunu varsayarsak, determinizmin önemini destekliyor.
Raphael

@Raphael NP'nin bütünlüğü, determinizm konusundaki tutumunuza bakılmaksızın önemli bir kavramdır.
Yuval Filmus

2
@Tanmoy Belirsizcilikçiliğiniz varsa, güç kaynağı yapımına ihtiyacınız yoktur, fakat ne yazık ki gerçek bilgisayarlar belirleyicidir. Bununla birlikte, bir NFA'yı önce bir DFA'ya dönüştürmek yerine doğrudan taklit etmek daha kolay olabilir. Daha fazla detay için link verdiğim cevaba göz atın.
Yuval Filmus

4

Otomataların model olduğunu doğru söylüyorsunuz, bu nedenle determinizmin sahip olamayacağı iki bölüm var:

  1. Gerçek problemleri modellemede kullanın.

    Ayrıca, deterministik olmayan otomatlar, dillerin daha kompakt gösterimlerini sağlayabilir. Örneğin, minimum eşdeğer DFA üssel olarak daha büyük olan NFA olduğu bilinmektedir.

  2. Teoride kullanın.

    Determinizmi kullanmak ispatları basitleştirebilir, bkz. Örneğin normal ifadeleri sonlu otomata dönüştürme.


4

(Bu, diğer cevapların bazılarının bir tekrarıdır, ancak yine de göndereceğim :)

Siz yazın: Bir otomat dijital bir bilgisayarın soyut bir modelidir.

Katılmıyorum! Otomatlar modelinde biz insanlar nasıl bilgisayar kullandıklarını değil, nasıl hesaplama yaptıklarını belirler. Nondeterminizm tam olarak farktır. Spesifikasyonlarımız çoğu zaman özgün değildir.

Örneğin, birleştirme sıralama . Birleştirme sıralaması, sıralanacak öğeleri kabaca eşit boyutta iki yarıya bölerek, her bir birleştirme sıralamasını kullanarak sıralayarak ve sıralanan sonuçları birleştirerek sıralamaktır. Bu, birleştirme sıralama fikrini tamamen belirtir, ancak deterministik değildir: yarıları sıralayacağınız bir sıra belirtmez (umursadığımız her şey için, aynı anda yapılabilir), ya da tam olarak bir yol belirtmez bölünmeyi belirlemek. Tek iş parçacıklı bir bilgisayar programı tarafından uygulanabilen deterministik, ardışık bir birleştirme türüne ulaşmak için bu ayrıntıların doldurulması gerekecek, ancak bunların bir birleştirme türünü yapmanın belirli bir yolunun parçası olduğunu söyleyebilirim. birleştirme fikri kendini sıralar.

Aynı şey genel olarak algoritmalar için de geçerlidir - örneğin yemek kitabı tarifleri. Bazı insanlar algoritmaları deterministik olarak tanımlarlar ; bu durumda bu daha genel ve bence “doğal algoritma” kavramının farklı bir isme ihtiyacı var.

Belirleyici olmayan özelliklerle çalışma fikri, Dijkstra'nın yalnızca program tarafından karşılanacak ön ve son koşulları sağlayan ve sistematik olarak bunlardan belirleyici, zorunlu bir program geliştiren özelliklerle başlayan programlama yöntemi ile resmileştirildi. Dijkstra muhtemelen şöyle söylerdi: sıralama problem, kurmaya çalıştığımız şartlar ve sonrasındaki ilişki; birleştirme sıralamasısorun belirtimi ile deterministik bir çözüm arasında yarı yolda bir yerde bunu yapmak için bir yaklaşımdır; belirli bir deterministik birleştirme sıralama algoritması somut bir deterministik çözümdür. Ancak, aynı genel yaklaşım, nihai programın hala belirlenemeyen olduğu eş zamanlı programları geliştirmek için kullanılabilir. Bu tür programlar, örneğin dağıtılmış hesaplama ortamlarında çalıştırılabilir.


2

Haklısın, sıradan olmayan bir makine yapamayız. Bu nedenle amaç, daha iyi makineler oluşturmak için konsept kullanmamaktır. Aksine, nondeterminism hesaplamayı anlamaya çalışırken yararlı bir kavramdır. Mesela, artık hesaplanabilirlik perspektifinden nondeterminizmin determinizmden daha güçlü bir şey olmadığını biliyoruz, bu da determinist bir makineyi determinist olanı kullanarak simüle edebileceğimizi gösteriyor. Bununla birlikte, karmaşıklık perspektifinden, nondeterminizm, örneğin, bir problem için etkin bir çözüm bulma zorluğu ile bir çözüm doğrulama zorluğu arasındaki ilişkiyi anlamamızı ve anlamaya çalışmamızı sağlar (ünlü P ve NP problemi olan) . Ve bunun gibi. Bu nedenle, nondeterminizm çalışmanın ana nedeni teoriktir.


Bağlamsız mı, deterministik Bağlamsız mı?
alto

@ alto Peki ya?
babou

@ babeterminizmin determinizmden daha güçlü bir şey olmadığını, yanlış bir ifade olduğunu belirtmeye çalışıyordum. NPDA'lar PDA'lardan daha güçlüdür.
alto

1
@ alto: hayır, ifadeyi yanlış anlıyorsunuz. Hesaplanabilirlik açısından bakıldığında, bunlar tamamen eşdeğerdir, çünkü ne kadar hesaplama kaynağının gerekli olduğu konusunda BAĞIMSIZ olarak çözebileceğiniz problemler sınıfı (veya tercih ederseniz diller) aynıdır. Ve gerçekten, deterministik bir makine ile mekanik olmayan bir makineyi simüle edebilirsiniz. Yine, gereken zaman ve mekan, hesaplanabilirlik bağlamında önemli değildir.
Massimo Cafaro

1
@MassimoCafaro Teoride daha fazla hemfikir olamazdı. Uygulamada anlambilim hakkında tartışmayı tercih ediyorum.
alto

2

Turing Makinesi icat 1936 yılında Turing tarafından yapıldı. FSM benzeri modeller , iki nörofizyolog McCulloch ve Pitts tarafından 1943'te nörobiyolojik aktivite için bir model olarak tanıtıldı . Stanford CS tarih sayfasından :

Sonlu otomataların bilgisayar biliminin bir kolu haline gelmesinin heyecan verici geçmişi geniş bir uygulama yelpazesini göstermektedir. Sonlu durumlu bir makine kavramını düşünen ilk kişiler arasında biyologlar, psikologlar, matematikçiler, mühendisler ve bazı ilk bilgisayar bilimcilerinden oluşan bir ekip vardı. Hepsi ortak bir ilgi paylaştı: beyinde veya bilgisayarda olsun, insan düşünce sürecini modellemek için. İki nörofizyolog olan Warren McCulloch ve Walter Pitts, 1943'te sonlu otomatların tanımını sunan ilk kişi oldu. “Sinir Aktivitesinde Bir Mantıksal Hesap otomatlar, hesaplama ve sibernetik teorisi. Daha sonra, iki bilgisayar bilimcisi, GH Mealy ve EF Moore, teoriyi 1955-56'da yayınlanan ayrı kağıtlarda daha güçlü makinelere yaygınlaştırdı. Sonlu durumlu makineler, Mealy makinesi ve Moore makinesi, çalışmalarının tanınması olarak adlandırılmıştır.

Bir CS tarihçisi değil, McCulloch-Pitts modelinin formalitermizmi içermediğinden ve Mealy - Moore modelinin biçimsel / teorik kavramın doğal bir genelleme / soyutlama yönteminde yer almadığından şüpheleniliyor . DFA'lar ve NFA'ların aynı temsil gücüne sahip olduklarını, böylece gerçek sistemleri modellemek isterse ikisinin de seçimine sahip olabileceğine dikkat edin. Bir temel fark, bir NFA'nın eşdeğer bir DFA'dan çok daha küçük olabileceğidir (örneğin, doğal bir veri / bilgi sıkıştırması öğesi vardır). NFA çalışmasında doğallığın paralelliği / analogları da var .


3
Hey, profilinizi gördüm ve cevaplarınızı bilerek aşağı oy veren biri gibi görünüyorum (her birinin sadece iki aşağı oyu var) ... Bu cevap yanlış değil , cevap faydalı bilgiler ekleyin. +1
Grijesh Chauhan

0

Öncelikle soruyu cevaplayan herkese teşekkür etmek isterim.Tüm cevaplar önemlidir ve bazı yararlı bilgiler ekler. Fakat yeni başlayanlar için zor bir soru olduğu için ve bunu iyi anlamak için yeterli zamana ihtiyacım var. Tüm cevaplardan ve bazı kitaplardan ne kazandığımı özetlemeye çalışırdım:

Aslında klasik olmayan modelin mekanizması hakkında bir kafa karışıklığı yaşadım. Her zaman gerçekçi olmayan makineyi merak ettim, çünkü gerçek dünyada var olmayan mekanik olmayan bir makine. Automata'yı her zaman günümüzde doğada tamamen belirleyici olan bilgisayarlarımızla karşılaştırdım. Aslında nondeterministik modeli tam olarak anlamadım. Şimdi, yönetimsel olmayan modeli oldukça iyi anladığımı düşünüyorum: Klasik olmayan bir makine, dizenin kabul edilmesine yol açan bu yürütme yolunu her zaman izleyen bir makinedir (Geri İzleme Olmadan). Fakat bu gerçek hayatta nasıl mümkün olabilir? : Günümüz bilgisayarlarının geleceği tahmin edebilecek kadar akıllı olması kesinlikle imkansız. Peki neden nondeterminism hiç? Bu sorunun cevabı oldukça zor. Soru hakkında neye karar verdim: Bilgisayarlar olmadığında otomat teorisi vardı (ilk teori pratikte). Tamamen teorik bir konudur ve sıradancılıkçuluk kavramı sezgisel bir şekilde ortaya çıkmıştır. Konunun “Otomata Teorisi” gerekçesi pratik bilgisayarlarla uğraşmak değildi. Fakat pratik olarak bilgisayar geldiğinde Otomata Teorisi'ni kullanarak pratik bilgisayarları tam olarak tanımlayabiliriz: günümüz bilgisayarlarının sınırlamaları nelerdir? Bu algoritmik problem bilgisayarlara çok karmaşık ve pratik değildir (Burada dermerminizmin rolü bizim için çok önemlidir. iki karmaşıklık sınıfını P ve NP ayırt edebilir.) Nispeten daha hızlı uygulanabildiği bu pratik sorunların çözümleri nelerdir. Nondeterminizmin faydası budur. Tamamen teorik bir konudur ve sıradancılıkçuluk kavramı sezgisel bir şekilde ortaya çıkmıştır. Konunun “Otomata Teorisi” gerekçesi pratik bilgisayarlarla uğraşmak değildi. Fakat pratik olarak bilgisayar geldiğinde Otomata Teorisi'ni kullanarak pratik bilgisayarları tam olarak tanımlayabiliriz: günümüz bilgisayarlarının sınırlamaları nelerdir? Bu algoritmik problem bilgisayarlara çok karmaşık ve pratik değildir (Burada dermerminizmin rolü bizim için çok önemlidir. iki karmaşıklık sınıfını P ve NP ayırt edebilir.) Nispeten daha hızlı uygulanabildiği bu pratik sorunların çözümleri nelerdir. Nondeterminizmin faydası budur. Tamamen teorik bir konudur ve sıradancılıkçuluk kavramı sezgisel bir şekilde ortaya çıkmıştır. Konunun “Otomata Teorisi” gerekçesi pratik bilgisayarlarla uğraşmak değildi. Fakat pratik olarak bilgisayar geldiğinde Otomata Teorisi'ni kullanarak pratik bilgisayarları tam olarak tanımlayabiliriz: günümüz bilgisayarlarının sınırlamaları nelerdir? Bu algoritmik problem bilgisayarlara çok karmaşık ve pratik değildir (Burada dermerminizmin rolü bizim için çok önemlidir. iki karmaşıklık sınıfını P ve NP ayırt edebilir.) Nispeten daha hızlı uygulanabildiği bu pratik sorunların çözümleri nelerdir. Nondeterminizmin faydası budur. Fakat pratik olarak bilgisayar geldiğinde Otomata Teorisi'ni kullanarak pratik bilgisayarları tam olarak tanımlayabiliriz: günümüz bilgisayarlarının sınırlamaları nelerdir? Bu algoritmik problem bilgisayarlara çok karmaşık ve pratik değildir (Burada dermerminizmin rolü bizim için çok önemlidir. iki karmaşıklık sınıfını P ve NP ayırt edebilir.) Nispeten daha hızlı uygulanabildiği bu pratik sorunların çözümleri nelerdir. Nondeterminizmin faydası budur. Fakat pratik olarak bilgisayar geldiğinde Otomata Teorisi'ni kullanarak pratik bilgisayarları tam olarak tanımlayabiliriz: günümüz bilgisayarlarının sınırlamaları nelerdir? Bu algoritmik problem bilgisayarlarda oldukça karmaşıktır ve bu yüzden pratik değildir. iki karmaşıklık sınıfını P ve NP ayırt edebilir.) Nispeten daha hızlı uygulanabildiği bu pratik sorunların çözümleri nelerdir. Nondeterminizmin faydası budur. Göreceli olarak daha hızlı uygulanabileceği bu pratik olmayan sorunların çözümü nedir. Nondeterminizmin faydası budur. Göreceli olarak daha hızlı uygulanabileceği bu pratik olmayan sorunların çözümü nedir. Nondeterminizmin faydası budur.

Yanlış bir şey varsa lütfen beni düzeltin.


Belirsiz olmayan bir makinenin, her zaman ipin kabul edilmesine yol açan yürütme yolunu takip eden bir makine olduğunu söylemek yanlıştır . Bunu yapmaz! Nondeterministik olmayan bir makine, çalıştırması sırasında işlemin kesin olmayan (= nondeterministik) seçimlerin yapılmasını sağlayan bir makinedir. Bu makineler hakkında gerçekçi olmayan hiçbir şey yoktur, örneğin çevreden bu seçimleri yapmasını isteyebilirler. Bu makineler daha sonra, belirli seçimlerin kabul edici bir durum üreteceğini öngören görevlere uygulanır.
reinierpost

@reinierpost: Yani, deterministik olmayan makinelerin gerçek hayatta var olduğunu söylüyorsunuz.
tanmoy

Evet. İşte size bir örnek: bir araba kullandığınızı ve izleyeceğiniz yolda herhangi bir karar vermediğinizi varsayalım. Örneğin, amaçsızca sürüş yapıyor olabilirsiniz veya bir insan navigatöründen veya navigasyon cihazından yönünüzü alıyor olabilirsiniz. Araba ve siz yerleri sürmek için kendine özgü bir sistem değilsiniz. Trafiğe geçiyorsunuz ve hangi yöne gideceğinizi seçimlerle karşı karşıya tutuyorsunuz. Siz ve araba için, bu seçimler belirsizdir: hangi yöne gideceğinize karar vermiyorsunuz, ancak bu karar verildiğinde, onu takip edeceksiniz.
reinierpost

@reinierpost: Deterministik olmayan bir bilgisayar var mı? Cevabım hayır. Çünkü eğer varsa, NP problemleri polinom zaman karmaşıklığına sahip olacaktır. değil mi
tanmoy

Bilgisayarların deterministic mi yoksa nodeterministik mi olduğu, onlara nasıl baktığınıza bağlıdır. Bir bilgisayar durduğunda ve kullanıcının bir şey yapmasını beklediğinde ve sonraki eylemleri kullanıcının ne yaptığına bağlı olarak değişebilir, bunun klasik olmayan bir seçim olduğunu söyleyebilirsiniz. Hayır, bu P = NP olduğu anlamına gelmez.
reinierpost

0

determinizm yararlıdır çünkü determinizmi anlamanıza yardımcı olur, ancak bunun tersini yapmaz. Determinizmin daha büyük fikir olduğunu söyleyebilirsin. Deterministik bir turing makinesi deterministik olmayan bir özel durumdur. - Nondeterminizm bugünün platformlarında neden bazı problemlerin çözülmesinin zor olduğunu anlamamıza yardımcı olabilir. Deterministik bir hesaplama platformunda etkin bir çözümü olmayan birtakım hesaplama problemleri vardır, fakat klasik olmayanlar üzerinde etkili çözümler olabileceğini anlıyoruz. ... devlet, kodlama, dinamizmcilik, hepsi birbirine bağlı http://people.cs.umass.edu/~rsnbrg/teach-eatcs.pdf

Deterministik bir Turing makinesinde, kurallar dizisi, herhangi bir durum için gerçekleştirilecek en fazla bir eylemi öngörür . Deterministik olmayan bir Turing makinesi (NTM), aksine, belirli bir durum için birden fazla eylem öngören bir takım kurallara sahip olabilir . http://en.wikipedia.org/wiki/Non-deterministic_Turing_machine Durum geçişlerini birden fazla eylemle başa çıkayacak kadar iyi yönetebilen bir yazılım kutusu oluşturabilirseniz, deterministik makinelerin ötesinde performans elde edebilirsiniz.


Gerçekle ilgili iddia edilen bağlantıların hiç de faydalı olduğundan emin değilim. Belirleyici olmayan bir makine yapamayacağımız çok açık (bugün en azından bugün) tamamen teorik bir yapı.
Raphael

Belirleyici olmayan kararların makinenin dışında bir şey tarafından alınmasına izin vererek belirsiz olmayan bir makine inşa edebiliriz.
reinierpost

@ reinierpost, daha da önemlisi, üstel yüke maruz kalmadan belirleyici olmayan makineleri belirleyici makineler olarak yapabiliriz. Savitch Teoremi. en.wikipedia.org/wiki/Savitch's_theorem
Tom

@ Raphael, gerçek dünyaya bazı referanslar önemlidir. Önbelleğe alma neden işe yarıyor? Çünkü, sonuçta tüm verilerin kaynağı olan gerçek dünyadaki olaylar normal bir dağılım izliyor. Geçici bölgelere bakınız: durablescope.blogspot.co.at/2009/11/…
Tom

@ reinierpost ve bu dış bir şey Turing bir kahin makinesi denir. Verilerin önbellekten çıkan veya çok bantlı bir makine gibi bir şey veya rastgele erişim belleğine girip girmediğini düşünebilirsiniz.
Tom

0

Determinizm dışı neden kavram faydalıdır?

Determinizm simetrileri kırma eğilimindedir. Bu eğilim, sıralı determinizm için daha güçlüdür, ancak asiklik yönlendirmeli bir grafik ve böyle bir grafiğin topolojik bir düzeni kavramı, determinizm ile sıralı determinizm arasındaki farkı görmezden gelmeye izin verir. Determinizm, daha fazla simetriyi korumaya izin veren determinizm'in bir üst kümesidir. Bir problemin çözümünü tasarlarken, deterministik olmayan çözümden başlamak, yararlı simetrilerin korunmasına izin verir ve çözümün tanımını küçük ve küçük tutar. Belirleyici olmayan çözümü belirleyici bir çözüme dönüştürürken simetrilerin kırılması daha sonra uygulama sırasında daha sonraki bir aşamaya devredilebilir.

Çoğunlukla determinizm, kısmi bir işlev kavramının, bir ilişki kavramı ile değiştirildiği anlamına gelir. Bu durumda, deterministik olmayan bir makine zaman içinde hem ileri hem de geri çalışabilirken, genel olarak deterministik bir makine için bu mümkün değildir. Determinizm için toplam fonksiyonlarla ve determinim olmayan için çok değerli toplam fonksiyonlarla birlikte çalışırsak, simetri artık o kadar iyi değildir, ancak yine de çalışabilir.


Belirli bir örnek verebilir misiniz? Burada "simetri" ile ne demek istediğinizi anlamakta zorlanıyorum.
Raphael

@Raphael Geri dönüş (01) * 01 (0 + 1) * ila (0 + 1) * 10 (10) * ters çevrilmiş giriş dizesini tanıyacak şekilde ters çevirir ve bu simetriyi, hepsini ters çevirerek deterministik olmayan makineye uygular ok ve takas başlangıç ​​ve bitiş durumu? Sonlu durumlu makineler için çok daha ilginç örnekler olup olmadığından emin değilim, ancak bunun yerine bir PDA için ilginç bir örnek bulmaya çalışabilirim.
Thomas Klimpel

İkili ilişkilerin tersine çevrilebilirliği, altdostik matrisler ve kısmi işlevler hakkındaki bir blog yazısında benzer bir soruya verdiğim cevabımı yazdım .
Thomas Klimpel
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.