Turing makinelerinin pratik önemi?


27

Ben elektrik mühendisiyim ve 26 yıl önce kolejde yalnızca bir CS kursu vardı. Ancak, ben de sadık bir Mathematica kullanıcısıyım.

Turing Makinelerinin bilgisayar bilimlerinde çok önemli olduğu kanısındayım. Sadece bilgisayar bilimi teorisindeki önemi var mı? Pratik uygulamalar / uygulamalar varsa, bunlardan bazıları nelerdir?

Yanıtlar:


21

Turing makinelerinin önemi iki yönlüdür. (Değilse Birincisi, Turing makineleri ilk kişilerden biri idi 1936. İkinci, teorik bilgisayar bilimleri bir sürü gelen bilgisayarlar, flört için teorik modeller akılda Turing makineleri ile geliştirilmiş ve temel sonuçlarının bir sürü böylece olmuştur önce) Turing makineleri dilinde. Bunun bir nedeni Turing makinelerinin basit ve analiz için elverişli olmasıdır.

Bununla birlikte, Turing makineleri bilgi işlem için pratik bir model değildir. Bir mühendis ve bir Mathematica kullanıcısı olarak, sizi hiç ilgilendirmemeliler. Teorik bilgisayar bilimleri topluluğunda bile, daha gerçekçi RAM makineleri algoritmalar ve veri yapıları alanlarında kullanılmaktadır.

Aslında, karmaşıklık teorisi açısından bakıldığında, Turing makineleri diğer birçok makine modeline polinom eşdeğeridir ve dolayısıyla P ve NP gibi karmaşıklık sınıfları bu modeller açısından eşdeğer olarak tanımlanabilir. (Diğer karmaşıklık sınıfları daha hassastır.)


11

Tornalama makineleri hesaplama için ilk modellerden biriydi, yani hesaplamanın kendisi çok iyi anlaşılmadığında geliştirilmiştir (1940 civarında). Onlardan daha önce tercih edilen model olmalarına neden olan (tartışmalı olarak) en temel ve en sonunda standart model olmalarına neden olan iki konuya odaklanmak istiyorum.

  1. İspatların
    basitliği Teorik bir model olarak, Turing makineleri, mevcut makine durumunun yalnızca sabit bir boyuta sahip olması anlamında "basit" olmaktan sorumludur. Bir sonraki makine durumunu belirlemek için ihtiyacınız olan tüm bilgiler bir sembol ve bir (kontrol) durum numarasıdır. Makine durumuna yapılan değişiklik eşit derecede küçüktür, bu yalnızca makine kafasının hareketini ekler. Bu basitleştirir (resmi), özellikle ayırt edilmesi gereken vakaların sayısını önemli ölçüde kanıtlar.

    Bu modeli RAM modeli ile karşılaştırın (minimalist formunda kullanılmadığında): bir sonraki işlem, herhangi bir (iki) kayda erişebilen birkaç işlemden herhangi biri olabilir . Ayrıca çoklu kontrol yapıları vardır.

  2. Çalışma zamanı ve alan kullanımı
    Kilisenin -calculus ve Kleene recursive işlevleri olan Turing Makineleri ile neredeyse aynı anda ortaya çıkan iki ana hesaplama modeli vardı . Hilbert - Onlar Turing yaptılar Aynı soruya cevap Entscheidungsproblem - ama çalışma zamanı ve alanı kullanımını tanımlamaya (hiç değilse) çok daha az kolayca izin verir. Bir anlamda, daha gerçekçi makine modelleri ile ilgili olamayacak kadar soyutlar.λμ

    Ancak Turing makineleri için her iki kavram da kolayca tanımlanır (ve doğru hatırlıyorsam Turing'in modelindeki ilk makalesinde idi). Verimlilikle ilgili kaygılar çoktan şeyler yapmak için çok önemli olduğundan, bu, Turing makinelerinin kesin bir avantajıydı.

Böylece, Turing makinası olarak kurulmuştur tarihsel "kaza" ve onun anahtar özelliklerinden bazıları kombinasyonu olarak görülebilir hesaplama modeli. Bununla birlikte, özellikle Turing makinelerinin eksikliklerinin üstesinden gelmek için birçok model tanımlanmıştır ve istekli bir şekilde kullanılmaktadır; örneğin, "program" için sıkıcıdırlar (yani tanımlamak için).

Uygulamadaki hiçbir doğrudan uygulamanın farkında değilim. Özellikle, hesaplama uygulaması, hesaplama teorisine paralel olarak (ve başlangıçta çoğunlukla bağımsız olarak) gelişti. Programlama dilleri edildi biçimsel makine modellerinin olmadan gelişti. Ancak, hesaplama uygulamasındaki pek çok ilerlemenin teori tarafından sağlandığı açıktır.

Ayrıca, teorik bir kavramın pratik için sahip olduğu değerin , tüm torunları, takip eden çalışmaları, sonuçları ve bu kavram tarafından mümkün kılınan yeni fikirleri dikkate alarak ölçülmesi gerektiğini unutmayın . Ve bu bakımdan, Turing makineleri konseptinin (diğerleri arasında) dünya üzerinde bir devrim yarattığını söylemenin adil olacağını düşünüyorum.


4

Aklıma gelebilecek tek pratik uygulama (aslında bir Turing makinesini uygulayabileceğiniz anlamında) bir tür dilin yeterli güce sahip olduğunu kanıtlamak.

Bir tür programlama dili tasarlıyorsanız (veya bir şeyleri hesaplamak için başka herhangi bir şey) tasarlıyorsanız, bir Turing makinesi uygulayarak Turing'in eksiksiz olduğunu (yani hesaplanabilir bir şeyi hesaplayabilen) olmasını sağlamak isteyebilirsiniz. içinde.

Elbette, Turing tamamlandı (C veya birleştirme mantığı gibi) başka bir şey de uygulayabilirsiniz, ancak bazen bir Turing makinesi en kolay seçenektir.


-1

Turing makinesi matematiksel bir hesaplama modelidir. Avantajları: -

1. Kararlılığı Kontrol Et TM sayılabilir zamandaki bir problemi çözemezse, o zaman bu problemi çözebilecek bir algoritma olamazdı (Bu sorun tespit edilemez).

Karar problemi için, TM sonlu uzunluktaki tüm girdiler için sayılabilir bir süre içerisinde durursa, o zaman sorunun sayılabilir bir sürede bir algoritma ile çözülebileceğini söyleyebiliriz.

2. Problemi Sınıflandır TM, karar verilebilir problemleri Polinom Hiyerarşi sınıflarına sınıflandırmaya yardımcı olur.

Sorunun çözülebilir olduğunu bulduğumuzu varsayalım. Sonra dışarı hedef, ne kadar verimli bir şekilde çözebileceğimize dönüştü. Verimlilik adım sayısı, kullanılan fazladan alan, FSM kodunun / boyutunun uzunluğuyla hesaplanmıştır.

3. Pratik Makineler için Tasarım ve Uygulama Algoritması TM, diğer pratik makinelerde algoritma fikrinin yayılmasına yardımcı olur. 1,2 kriterin başarıyla kontrol edilmesinden sonra, algoritma tasarlamak ve uygulamak için pratik cihazlarımızı / bilgisayarlarımızı kullanabiliriz.


3
Turing makineleri "karar verilebilirliği kontrol etmenize" izin vermiyor; onlar sadece karar verilebilirliğin ne olduğunu açıklar. Sorunların sınıflandırılması, rastgele erişim makineleri gibi diğer hesaplama modelleri kullanılarak mükemmel bir şekilde mümkündür. Turing makinelerinde çalışan algoritmalar diğer makine modellerine nadiren uygundur, çünkü Turing makine algoritmaları başka yerlerde bulunmayan büyük miktarda bant karıştırmayı içerir.
David Richerby

TM kararsızlık tanımı verir. Sağ. Kararsızlığı kontrol etmek için TM'den yardım almıyor muyuz? "Başka sınıflandırma modelleri kullanılarak problemlerin sınıflandırılması mükemmel bir şekilde mümkündür." Doğru, ancak TM kullanarak da yapabiliriz. Algoritmayı uygularken, bu problemin sertliğinden emin olmalısınız.
Subhankar Ghosal,

-3

Turing makineleri pratikte az kullanım ile iyi zihin egzersizidir. Olmamasının bir zararı yok. Bir Turing makinesinin tüm uygulamaları ya sezgiseldir ya da din meselesidir, çünkü ispatlanamaz ya da çürütülemez.


2
“Bir Turing makinesinin tüm uygulamaları sezgiseldir ya da bir din meselesidir [...]” Bu nedenle, hesaplanabilirlik teorisi ve karmaşıklık teorisi alanlarının tümü on dört kelimeyle reddedilmiştir.
David Richerby

Bunların bu teorileri reddetmesi amaçlanmadı. Tek söylediğim, bir Turing makinesinin uygulamalarının ya açık, sezgisel olarak anlaşılması ya da kanıt olmadan inanca ihtiyaç duyulmasıydı.
Valery Gavrilov

"Bir din meselesi çünkü ispatlanamazlar ya da reddedilemezler." Um, ne? Bunu pişirebileceğim en cömert yorum, Kilise-Turing tezine atıfta bulunduğunuz, ancak bunun her bir özel uygulamasının gerçekten kanıtlanmış olabileceğidir (sadece uygun Turing makinesini tasarlamanın sıkıcı işlerinden geçin); en sevdiğiniz programlama dilinde uygun bir algoritma yazın ve normal denkliği kullanın) ve CT bir uygulama değildir, sadece ispatların açıklanmasını basitleştirmenin bir yolu (ve bunun bir uygulamasından ciddi olarak şüphe duyulursa, her zaman resmi bir kanıt).
Noah Schweber

Ayrıca “sezgisel olarak nasıl anlaşılabildiğini” dezavantaj olduğunu anlamıyorum. Tüm matematiğin sezgisel olarak anlaşılması; Bu, matematiğin pratikte az kullanılan bir zihin egzersizi olduğu anlamına mı geliyor?
Noah Schweber
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.