Turing makineleri bir noktada sonsuz bir şey varsayar mı?


9

Önceki bir soruda Algoritma tam olarak nedir? , Ben önceden hesaplanmış değerleri bir dizi dayalı bir işlevin değerini döndüren bir "algoritma" sahip bir algoritma olup olmadığını sordu.

Dikkatimi çeken cevaplardan biri şuydu:

Faktöriyel örnek, düzgün olmayan hesaplama adı verilen farklı bir hesaplama modeline girer. Turing Makinesi, tek tip bir hesaplama modeline örnektir: Tekli, sonlu bir açıklamaya sahiptir ve keyfi olarak büyük boyutlu girişler için çalışır. Başka bir deyişle, sorunu tüm girdi boyutları için çözen bir TM vardır.

Şimdi, hesaplamayı aşağıdaki gibi düşünebiliriz: Her girdi boyutu için, sorunu çözen bir TM (veya başka bir hesaplama cihazı) vardır. Bu çok farklı bir soru. TM'nin sınırlı bir açıklaması olduğundan, tek bir TM'nin her bir tamsayının faktöriyelini depolayamayacağına dikkat edin. Bununla birlikte, 1000'in altındaki tüm sayıların faktöriyellerini saklayan bir TM (veya C'deki bir program) yapabiliriz. Ardından, 1000 ila 10000 arasındaki tüm sayıların faktöriyellerini saklayan bir program yapabiliriz.

Her TM aslında sonsuzlukla başa çıkmanın bir yolunu düşünmüyor mu? Yani, algoritma yoluyla herhangi bir N sayısının faktöriyelini bilgisayarların oluşturduğu sonlu bir açıklamaya sahip bir TM bile

 int fact(int n) 
 { 
 int r = 1; 
 for(int i=2;i<=n;i++) 
 r = r*i; 
 return r; 
 } 

Bir TM, rasgele bir sayıya i kadar artırmak için ayrıca toplayıcı "<=" karşılaştırıcı ile rasgele bir boyuttaki numaraları karşılaştırmak, ve "donanım" sahip olduğu varsayımı içerir Ayrıca , rasgele bir boyuttaki sayıları temsil yeteneği.

Bir şey mi kaçırıyorum? Diğer sorumda sunduğum yaklaşım, sonsuzluk açısından neden bu yaklaşımdan daha az uygulanabilir?


5
"Sonsuz" ve "keyfi olarak büyük" arasındaki farka dikkat edin.
Raphael

Bu çok iyi bir soru, ama yanlış ifade edildi. Turing Machines'den bahsettiğiniz gibi, en basit hesaplama modeline dayanan cevaplar alırsınız. Ve bu, bir algoritmanın ne olduğunu anlama arayışınıza çok az ışık getirecektir, çünkü çoğu cevap çok keyfi olarak kısıtlanmış bir makinenin ifade gücünün sınırlamalarına dayanacaktır. Sonlu bir tanımın ne olduğuna çok fazla menteşe vardır, bu aslında hesaplanabilir bir tanım olmalıdır. Önemli olan bir şey, hesaplanabilir şekilde numaralandırılabilmeleridir. Sonlu hesaplanabilir, ancak hesaplanabilir olması zorunlu değildir.
babou

@Raphael Infinite keyfi olarak büyük değil. Ancak, sonsuz bir varlık bu dizinin limiti olarak uygun bir şekilde tanımlanabiliyorsa, artan şekilde artan dizileri sonsuz olarak kabul etmek daha kolay olabilir. Bu şekilde tanımlanmış olan sonsuz sonsuz nesneleri her zaman ele alıyoruz.
babou

Sorunuzun olumsuz yanıtlarının, soyut matematiğin eterik aleminin dışında hiçbir şeyin sonsuz olmadığı varsayımına dayandığından şüpheleniyorum. Bu durumda soru tartışmalıdır. Turing Machines "sonsuz bir şey üstlenemez" çünkü sonsuz olan hiçbir şey yoktur.
babou

Yanıtlar:


9

Bir Turing makinası yok değil "yoluyla keyfi boyutta numaralarını karşılaştırmak yeteneğine sahip <=bir Turing makinesi" olmadığı için karşılaştırıcı " <=karşılaştırıcı". Bir Turing makinesinde sabit, sonlu kümesi  durumları ve sabit, sonlu bant alfabesi  . Hesaplamanın her adımında Turing makinesi mevcut durumuna ve okuma / yazma kafasının altındaki simgeye bakar ve daha sonra ne yapılacağına karar verir: hangi durumun girileceği, banda hangi sembolün yazılması ve kasetin hangi şekilde taşınacağı kafası.SΣ

Bu nedenle, bir Turing makinesi tek bir komutta rastgele büyük sayıları karşılaştıramaz <=. Durumu kullanarak en fazla hatırlayabilirfarklı sayılar ve alfabeyi kullanarak en fazla yazabilirtek bir bant hücresindeki farklı sayılar (bir sayıyı temsil etmek için her olası sembolü kullanarak). Bu nedenle, bir Turing makinesindeki keyfi olarak büyük sayıları karşılaştırmak için, her sayıyı kasete bir basamak dizisi olarak yazmalı ve bu iki sayıyı karşılaştırmak için birden fazla adım alacak bir algoritma yazmalısınız. Tahmin edebileceğiniz gibi, bu Turing makine programlarını yazmayı oldukça zorlayıcı bir çaba haline getiriyor.|Q||Σ|

Turing makineleri gerçekten "sonsuzlukla uğraşmaz": en azından standart tanımlarında sınırsız sonlu şeylerle uğraşırlar. Giriş sonlu bir dizgidir ve herhangi bir sonlu adımdan sonra makine sadece sınırlı sayıda bant hücresini incelemiştir veya yazmıştır. Girdinin boyutu veya hesaplama adımı sayısı ile ilgili bir sınırlama yoktur, ancak girdi sonludur ve herhangi bir sonlu adımdan sonra sadece sınırlı miktarda çıktı üretilmiştir.


7

Yapmam gereken önemli ayrım Turing makinesinin tanımının, makineye giriş gibi sonlu olduğu, bellek olarak kullandığı bandın sonsuz olduğudur. TM, sonlu bir bant kullanan çoğunlukla sonlu bir makinedir. Her bir hücrenin tek bir değer içerebileceği hücrelerden oluşacak bandı düşünün. TM girişi kasete yazılır.

Bir TM'nin açıklaması sonlu bir tuples grubudur <current state, input, output, move, next state>.

Her adımda yapılacak şey, mevcut durum ve giriş eşleştirilerek bulunur. Örneğin, 0 durumundayız ve 1 okuyoruz, bu yüzden başlayan tupleu buluyoruz, <0, 1, ...>sonra mevcut hücreye yeni bir değer yazıyoruz, sola veya sağa hareket ediyoruz (klasik tanım aynı hücrede kalmaya izin veriyor ) ve ardından yeni bir duruma geçin.

Bu nedenle, örneğin, TM'nin sonsuz büyük bir tanımına (sonsuz sayıda <current state, input, output, move, next state>tuple) ihtiyacınız olacak veya arama bilgisini TM girişine dahil edeceksiniz . TM girişinin sonlu olarak tanımlandığına inanıyorum. Yani, bu muhtemelen klasik olarak tanımlanmış bir Turing makinesiyle yapabileceğiniz bir şey değildir.

Buna karşılık, Fibonacci örneği, TM'yi tanımlamak için sonlu sayıda tuple ile ikili olarak hesaplanabilir ve sonlu bir girdiye sahiptir.


5
Teyp yok değil sonsuz olması gerekiyor! Gerektiği gibi genişletilebilir. Gereken tek şey, bandın keyfi olarak büyük olabilmesidir .
reinierpost

5

Özetle : Turing Machine (sonlu olarak tanımlanmış) sonsuz veriler üzerinde (sonlu olarak tanımlanmış) sonsuz hesaplamalar yapabilir ve (sonlu olarak tanımlanmış) sonsuz sonuçlar üretebilir. Temel fikir, bu sonsuzlukların matematiksel olarak uygun bir şekilde tanımlanan sonlu varlıkların limiti olarak tanımlanabilmesidir. Bu, hesaplamanın matematiksel anlambiliminin temelidir. Turing Machines yerine programları göz önünde bulundurursanız, bu programlar ayrıca (sonlu olarak belirlenmiş) sonsuz veri yapıları içerebilir. factOlası bir algoritma olarak tablo haline getirilmiş bir fonksiyonun sonunda, sonsuz nesnelerin tembel değerlendirmesi ile ilgili bir ipucu ile, bir program veya bir TM modeli olarak analiz edilir.

Daha fazla ayrıntıyla

Son sorunuzla ilgili olarak, bir TM rastgele sayılar üzerinde değil, bu sayıların bunları temsil eden keyfi (sınırsız) uzun dizeler olarak sembolik gösterimi üzerinde hesaplar. Modulo uygun kodlama, bu temsiller yoluyla aritmetiği bu sayılarla karşılaştırabildikleri veya yapabildikleri doğrudur.

Ancak asıl soru, Turing Makinalarında sonsuzluğun rolü hakkında.

Bu sorunun ortak bir cevabı Turing Machines'in asla sonsuzlukla uğraşmamasıdır. Sonlu olarak tanımlanırlar ve hesapladıkları her şey, bandın sınırlı bir kısmında sınırlı bir zamanda hesaplanır (bu nedenle daha büyük bir sonlu bant yeterli olacaktır). Doğru olan, TM'nin alan süresi gereksiniminin sınırsız olmasıdır, ki bu sonsuz değildir.

Dolayısıyla, bir TM tarafından hesaplanan herhangi bir cevap, bir dereceye kadar tablolamaya bakmanın bir yolu olan bir sonlu durum otomatı (FSA) tarafından da hesaplanabilir. Zorluk, bazı giriş boyutlarının (sadece girişi okumak için neredeyse her zaman gelir) otomatiğin boyutunu aşmasıdır. Ama sonra sadece daha büyük bir tane kullanabiliriz. Dolayısıyla, sınırsız girdi boyutunu dikkate almak istiyorsak, hesaplamayı yapabilen sonsuz bir FSA dizisine ihtiyacımız var. Aslında, hesaplanacak bir çıktı (evet-hayır cevabı yerine) olabileceğinden, geleneksel FSA'dan biraz daha karmaşık bir sonlu durum makinesine ihtiyacımız olabilir, ancak sonlu durum dönüştürücüsünün muhtemelen yapması gerekir.

Dolayısıyla, bir GCD hesaplamak veya sadece keyfi boyuttaki tamsayılarda aritmetik kullanmak gibi sonsuz bir dizi örneğe sahip bir soruna bakarsak, sonsuzluğun arka kapıdan bize geri geldiğini görüyoruz, bu sonsuz FSA kümesi.

Ama başka bir sorun daha var. Yukarıdaki analiz, yalnızca bir sonuçla sona eren hesaplamaları düşündüğümüzde işe yarar. Ancak tüm TM bunu yapmaz. Bazıları sonsuz bir kümenin üyelerini numaralandırabilir. Bu genellikle ondalık sayıları hesaplayan bir TM için geçerlidir.πve süresiz olarak yenisini eklemeye devam edin. Tabii ki, sonlu bir zamanda sadece sonlu bir cevap hesaplar, ama ilgilendiğimiz şey gerçekten sonsuz bir hesaplama tarafından üretilen sonsuz dizidir. Şimdi sonsuzluğun iki yönüne sahip olduğumuza dikkat edin: hesaplama sonsuzluğu ve sonucun sonsuzluğu (yani bazı hesaplanmış veriler). Aslında bu sonsuz girişi düşünmeye bile yol açabilir ... ama sınırsız veri akışlarıyla ilgilenen bu komplikasyonu görmezden gelelim. Ayrıca evet dışında bir çıktı veren bu tür hesaplamaların

Daha sonra, bunu sonlu makinelerle sonsuz bir sonlu hesaplama dizisi ile değiştirebiliriz. Ama aldatıyor muyuz?

Fiziksel bir bakış açısından, yapabileceğimiz en iyi şey budur. Sadece en azından fizikteki son teknolojiye göre, yakın gelecekte bu konuda çok fazla değişmesi beklenmeyen sonlu makinelerin nasıl inşa edileceğini biliyoruz.

Ancak bu sonsuzlukları matematiksel açıdan tutarlı ve izlenebilir bir şekilde nasıl ele alabiliriz?

Sonsuz bir cevap kümesini hesaplamak için bir tür işbirliği yapabilen sonsuz bir FSA seti düşündüğünüzde, bunu keyfi olarak yapamazsınız. Yaptığınız şeyin mantıklı olmasını sağlamak için bazı güvencelere ihtiyacınız var. Herhangi bir seti önemsiz bir şekilde düzenli setlerin sonsuz birliği ile, aslında sonsuz bir singleton setleri birliği ile inşa edebileceğiniz iyi bilinmektedir. Yani, herhangi bir kısıtlama olmaksızın keyfi sonsuz otomata sendikalarını düşünmek sizi hiçbir yere götürmez. Hatta size tutarsız cevaplar veren aynı otomatada düşünün.

Gerçekten istediğiniz şey tutarlılık kavramını tanımlamaktır. Ancak bu bazı önlemler gerektirir. Evet veya hayır yanıtı veren veya durmayan bir TM benzetimi yapmak için sonsuz bir otomata dizisi kullandığınızı varsayalım. Sorun şu ki, bir ÖSO her zaman evet ya da hayır gibi bir cevapla duracaktır. Ancak, seçilen girdi için yeterince büyük olmayan bir FSA kullanırsanız, neye cevap vermelidir. Hem evet hem de hayır, FSA'nın TM hesaplamasını gerçekten sonlandırdığı durumlar için ayrılmıştır ve bu cevaplardan birini bitmemiş bir hesaplamayla kullanmak sadece karışıklığa yol açacaktır. İstediğin bir cevap: " Üzgünüm, çok küçüküm ve söyleyemem. Lütfen ailede daha büyük biriyle dene ". Başka bir deyişle, taşma gibi bir cevap istiyorsunuz veya bilmiyorum. Aslında semantikler tarafından " tanımsız " veya ayrıca " alt " olarak adlandırılır ve genellikle".

Yani 3 çeşit durumu olan otomatlara ihtiyacınız var: kabul etme, kabul etmeme ve tanımsız. Tanımlanmamış bir durum, otomanın, hesaplamayı durmaya zorlayan eksik bir kısmı için duran bir durum olarak görülebilir. Yani, hesaplama durduğunda, durduğu duruma bağlı olarak, evet , hayır veya tanımsız yanıtı alırsınız .

Şimdi, istediğiniz şeyin tutarlı olan sonsuz otomata dizileri olduğunu görüyorsunuz . Hem evet ve hayır ile tutarlı tanımsız ama evet ile tutarlı değil hiçbir . Daha sonra aynı girdi üzerinde tutarlı cevaplar verdiğinde iki otomata tutarlıdır.

Bu, diğer cevap türlerini hesaplayan otomata genişletilebilir. Örneğin, kırmızı, mavi, yeşil gibi renkleri hesaplarlarsa, diğerleriyle tutarlı olan tanımlanmamış rengi ekleyebilirsiniz. Eğer cevap, bunlar gibi sonsuz bir rakam dizisi ise,π, her basamak tutarlı ve bağımsız bir şekilde tanımsız ile değiştirilebilir, böylece 3.14... ile tutarlı 3,1415... Ve birlikte .5159..., ancak son ikisi birbiriyle tutarlı değil 3,1416.... Aslında, bu anlamda,3,1416... bir yaklaşımı değildir π. Bir yanıtın, diğerinde bulunabilecek tüm bilgileri ve muhtemelen daha fazlasını içerdiğinde diğerinden daha iyi tanımlandığını söylüyoruz. Bu aslında kısmi bir sıralamadır.

Turing Makinalarına dayanıldığında biraz garip olan bu teorik yönleri daha fazla geliştirmeyeceğim. Mesele şu ki, bu kavramlar hesaplama alanlarının (ister veri ister makine olsun), sonsuz nesne (örneğin daha iyi ve daha iyi tanımlanmış) sonlu cisimler. Sonsuz dizileri tanımlamak için biraz daha aparat ve bir süreklilik kavramı gerekir. Dana Scott'ın anlambilim teorisi temelde budur ve hesaplanabilirlik kavramlarına biraz farklı bir bakış açısı verir.

Daha sonra, Turing makineleri veya "sonsuz hesaplama" yapabilen diğer resmi cihazlar, daha iyi ve daha iyi tanımlanmış olan makinelerin sonlu yaklaşım dizilerinin sınırları olarak tanımlanabilir. Aynı şey, ister girdi ister çıktı olsun, makinelerin hesapladığı tüm veriler için de geçerlidir.

Bu konuda şimdiye kadar okuduğum en basit belge, Dana Scott tarafından genellikle Amsterdam ders notları olarak adlandırılan elle yazılmış bir dizi ders notudur. Ama web'de bulamadım. Bir kopyaya herhangi bir işaretçi (bir parçası olarak tamamlanmamış olsa bile) memnuniyetle karşılanacaktır. Ancak Scott'ın Matematiksel Hesaplama Teorisinin Anahatları gibi diğer erken yayınlarına bakabilirsiniz .

Sorunun ilk örneğine dön

Bu yaklaşım kavramları veriler için olduğu kadar programlar için de geçerlidir. Fonksiyon factözyinelemeli olarak tanımlanır, yani bir dizinin yakınsak sonlu yakınsamasını hesaplamak için kullanılabilen bir fonksiyonun en az sabit noktasıdır fact. Daha fazla tanımlanmış sonlu fonksiyonlar dizisi, fonksiyon olarak adlandırdığınız sonsuz bir varlığa yakınsar fact.

Ancak dizi araması kullanırsanız, kodunuz, önceden hesaplanmış değerlerin sonsuz tablosunun sonlu yaklaşımları olan daha büyük ve daha büyük tablolar içeren kodla tam olarak aynı şeyi yapabilirsiniz fact. Bu dizilerin her biri aslında herhangi bir tam sayı için bir cevap verebilir, ancak cevap( tanımsız ) tablo yeterince tanımlanmadığında (yeterince büyük). Tablo arama algoritması da sonsuz bir tabloyla hesaplandığı için bir dizi yaklaĢımla tanımlanmalıdır.

Eğer temel TM hesaplama modelini göz önüne alırsanız, böylesine sonsuz bir dizinin bu formalizmde ifade edilemeyeceği doğrudur. Bu mantıklı olmayacağı anlamına gelmez. Bir Turing makinesinde, gibi bazı işlevlerin tablo değerleri ile başlatılması gereken ikinci bir bant olabilir fact. Bu işlev hesaplanabilir bir işlev olduğu sürece TM'nin hesaplama gücünü değiştirmez, yani tablo ilgili işlev için tüm bağımsız değişken değer çiftlerini hesaplayabilen başka bir TM'nin sonsuz bir hesaplamasıyla başlatılabildiği sürece.

Ancak pratikte sonsuz bir hesaplamayı tamamlayamazsınız. Dolayısıyla bunu yapmanın doğru yolu, tabloyu tembel bir şekilde hesaplamak, yani yalnızca gerektiğinde girdileri doldurmaktır. Memolaştırma ile yapılan şey tam olarak budur, bu da önceki sorunuz için farklı gerekçelerle size verdiğim cevaptır.


3

Bu cevabın özü Turing Machines'in programlayabildiğimiz her şeyi taklit edebilmesidir ve sonsuz nesnelerle, sonsuz nesnelerle ve onlarla program hesaplamaları yapıyoruz.

Bu, cevabı haklı gösteren genel teorik çerçeveye göre sorulan soruya odaklanan ikinci bir cevaptır ve sorunun daha genel başlığını cevaplamak için kesin olarak gerekli olacaktır. OP'nin sorularına vermiş olduğum cevaplarla tamamen uyumlu, hem algoritma tam olarak nedir? ve Turing makineleri bir noktada sonsuz bir şey varsayar mı? , cevapları daha teorik bağlamda geliştirdim. Bu her iki soruyu da cevaplıyor olarak görülebilir.

Turing makineleri , tüm Turing tam hesaplama modellerinde olduğu gibi, sadece sayısız sonsuzlukta olsa da, sonsuzlukla başa çıkma yeteneğine sahiptir . Bizim sorunumuz, bu sonsuzluğun sadece bir kısmını gözlemleyebilmemizdir, ancak gözlemleyebileceğimiz kısım sınırsız olduğu için hepsini göz önünde bulundurmalıyız.

Diğer sorun ise kendimizi ancak sonlu olarak belirlenmiş varlıklarla başa çıkabilmemizdir. Aslında bildiğimiz bilimin tüm yapısı, sonlu olarak tanımlanmamış varlıkları düşünürsek düşüyor, çünkü tanımların tutarlılığını kontrol etmek, tanımların ne olduğunu bile bilmek imkansız hale geliyor, çünkü bunların sadece bir kısmına erişebiliyoruz. sınırlı bir zaman.

Böyle bir birliktelikte izin verilenleri uygun bir şekilde sınırlandıramazsanız, sonsuz birlik altında kapanmanın istediğiniz herhangi bir seti tanımlamasına benzer bir başka temel sorun daha vardır. Ancak bu konuyu tam olarak anladığımdan emin değilim.

Dediğim gibi, Turing makineleri sonsuzlukla başa çıkma yeteneğine sahiptir . Böyle bir temel konu hakkında ne konuştuklarını bilmeleri gereken bazı yüksek rep kullanıcılarının cevapları ile çelişiyorum.

Sorun şu ki Turing, teorik amacına ulaşmak için çok basit bir hesaplama modeli seçti. Ne kadar basit, o kadar iyi. Makine dilinin programlamada olduğu şey neredeyse daha gelişmiş / sofistike hesaplama modellerine yöneliktir: üst düzey programlamada mantıklı olmayan kavramları tanıyamayacağınız çok belirsiz bir şey. Gerçek şu ki, makine dili gibi TM de doğrudan ifade edebildiklerinden daha fazlasını taklit edebilir.

Dahası, hiç kimse Turing Makinesinin bu sınırlamalarına inanmıyor ve az çok egzotik özelliklere sahip birçok TM çeşidi tasarlandı. Bazı sonsuz kümeler denir Eğer ardışık enumerable TM aslında sonsuz bir hesaplama gerektirir numaralandırmak (temsilleri) kendi üyeleri (görebilirsiniz, bunun nedeni Sayim olarak Turing Makineleri içinde Hopcroft-Ullman 1979, sayfa 167 ). : Elbette, her zaman kodlamak gibi sorulara cevap verecek sonlu hesaplamaların olarak bu can ne23rd üyelerinize göre setin üyesi misiniz? Ancak, çoğu zaman doğru cevap alındığında yapay olarak durdurulan sonsuz bir hesaplama olarak uygulanacaktır.

Aslında, bir TM'de her şeyin sonlu ancak sınırsız olduğunu belirten tüm kullanıcılar Turing Makineleri'ni standart tanımlarında dikkate aldıklarını eklemek için oldukça dikkatli . Sorun, standart tanımın sadece teoriyi basitleştiren bir cihaz olması, ancak hesaplama yapılarını anlamaya çalışırken hemen hemen ilgisiz olmasıdır.

Aslında, hesaplamada önemli olan tek şey, her şeyin sınırlı olması değil, hesaplanabilir bir şekilde sonlu olarak belirtilmesi gerektiğidir .

Bir tur makinesinin sonlu bir nesne olması gerektiğini varsayıyoruz. Ama bu doğru değil. Turing makinesinin bir modelini salt okunur ikinci bir bant kullanarak tanımlayabilir ve herhangi bir sınırlama olmaksızın tüm tamsayı değerleri için tablo haline getirilmiş bir işlev içerir. Bu sonsuzdur. Ancak, bu bandın içeriği hesaplanabilir bir şekilde belirtildiği sürece size ekstra bir hesaplama gücü satın almaz (hesaplanabilirlik, sonlu olarak belirtildiğini ima eder). Ekstra bant, diğerine gömülü bir TM makinesi ile de değiştirilebilir ve ekstra bantta aramak yerine cevapları sağlayacaktır. Daha yüksek bir seviyeden, fark görünmez.

Pratik bir gerçekleştirme bakış açısından, fact faktöriyelleri hesaplayan ve ekstra bantta tablo haline getiren bir turing makinemiz olabilirken , başka bir TM tablolanmış faktöriyeli ekstra banttan kullanacaktı, sadece tabulasyonun hala eksik olduğu zaman ilk TM'yi bekliyordu. girişi. Ancak ikinci makine, bant içeriğinin nihayetinde sonsuz olduğunu varsayar. Tablolama makinesinin her zaman çalışması bile gerekmez, ancak tablodan veri istendiğinde ve orada bulunmadığında hesaplamaya devam etmelidir.

Soruya geri dönersek, sınırsız tamsayılar ve sonsuz tablo arasındaki temel fark sadece tamsayıların sonlu, sınırsız, ancak sonlu zamanda tamamen hesaplanmış olmasıdır. Sonsuz tablo süresiz olarak hesaplanır, sonlu ama yine de sonsuza kadar büyüyor. Bu bir sorun değil, bir fark. Sonsuz nesnelere yalnızca sonlu yaklaşımlarla erişilebilir, ancak sonsuzdur. Hesaplanabilir irrasyonel sayılar, bu anlamda, en azından ikili sayılar olarak temsil edilmeleri için sonsuz nesnelerdir.

Tüm algoritmalar bazı matematik teorileri bağlamında tanımlanır. Ve sonsuz bir tablo ile birlikte bir tablo araması bir algoritmadır. Ancak, matematiksel bir teoride, her tamsayı argümanı için aksiyomatize ettiği bir fonksiyonun değerlerini (yoğun bir şekilde değil) geniş olarak (yoğun olarak değil) belirleyen, son derece tanımlanmış sonsuz bir aksiyom setine sahip bir algoritmadır. ( önceki sorunuza verilen cevaba bakın ). O zaman bunu yapmak her zaman meşrudur, çünkü bir teorinin aksiyomlarına her zaman kanıtlanabilir doğru ifadeler ekleyebilirsiniz.

Mevcut sorunuzda tekrarlanan Usul ifadeleri, bence yanlış (her şey bir tanım meselesi olsa da). Yeniden üretmediğiniz cevabındaki sonucu, sonsuz bir tablonun kullanımının bir algoritma olarak kabul edilemeyeceğidir, çünkü sadece tekdüze olmayan bir hesaplama modeli tarafından, farklı makinelerin bir koleksiyonuyla ve böylece böyle kullanımları " herhangi bir giriş boyutu için bütün 'sorunu çözmek için uygulanabilecek bir sonlu bir açıklama yok'"Bu yanlış. Ayrı tanım alanları olan ayrık makinelere bölünmesi, işleri yapmak için yanlış bir yoldur. Doğru yol, uygun şekilde yakınsama yapabilen daha büyük ve daha büyük tanım alanlarına sahip sonsuz sayıda tutarlı makineye sahip olmaktır. Bu, Dana Scott tarafından tanımlanan hesaplama semantiğinin matematiksel teorisinin temel bir amacıdır.Uygun matematiksel aparatla, sonsuz sonsuz makineleri, sonsuz temsillere sahip değerleri ( e veyaπ) veya tümü hesaplanabilir olan sonsuz veri yapıları. ( bu soruya ilk cevabımı görün ).

Bu tür sonsuz varlıkların pratikte hesaplanma şekli, tembel değerlendirme , herhangi bir zamanda ihtiyaç duyulan herhangi bir parçayı hesaplama ve daha fazlası gerektiğinde geri kalanların bazıları için hesaplamayı sürdürme yoluyla olur. factTablodan daha fazla veri gerektiğinde, bir masada saklanacak makine tembel olarak hesaplama faktörünü yukarıda önerilen şey tam olarak budur .

Bir bakıma, tembel değerlendirme aslında bazı sınırlı koda dayalı olacağından, kod alanının sonlu olması gerektiği iddiasını ( DanielV'nin cevabında ) doğrulamaktadır. Ancak hesaplanabilirlik, yaygın bir kodlama oyunudur, böylece diğer şeylerin yanı sıra, kodu verilerden ayırmak her zaman izleyicinin gözünde olur. Nitekim, birçok modern programlama dilleri arasında çok fark yok intensional ve genişlemeli değerlerin şartname ve Denotasyonel Semantik gerçekten "4" den "2 + 2" ayırt etmez. Semantik biz gibi soru sorarken ne konuştuğunu gerçekten " nedir X'in ? ".

Statik olarak da görülen kodun sonluluğuna ilişkin bu görünüm, veri olarak kullanılan sınırsız tamsayılarla eşit bir tabanda sonsuz bir tablonun (kodun bir parçası olarak kabul edilir) görülmemesinin bir başka nedenidir. Ancak bu, meta programlama , refleksif diller ve evalfonksiyonun kullanımında bilinen programlama pratiğinden hayatta kalamayan bir başka yanılsamadır . Bu dillerde, kod, bilgisayar çalıştığı sürece, çalışan programın kendisi tarafından sınırsız genişletilebilir. Gerçekten de, kendi geçiş kurallarını değiştiren Turing Makineleri, sayılarını sınırsız olarak artırabilir. Universal Turing makinelerinin çalışma şekline oldukça yakın.

Teorik çerçeveler tasarlarken, her zaman sadelik ve perspektif veya ifade arasında bir gerilim vardır. Basitlik, özellikle belirli özellikleri kanıtlamak veya diğer çerçevelere indirmek söz konusu olduğunda çerçevenin analizini genellikle daha basit hale getirir. Ancak, daha sonra kodlanması gereken üst düzey kavramları ifade etmek genellikle elverişsizdir. Turing Machines ile programlamıyoruz, ancak çok daha etkileyici ve perspektif olan yüksek seviyeli dillerle programlıyoruz ve aynı zamanda semantik eşdeğerlik temelinde kod ve veri arasındaki ayrım gibi bazı engelleri silebilir. Turing makineleri basit görünüyor, ancak temel tanımlarının çok ötesine geçebilir.


3

Kısa cevap: hayır . Turing makinaları do not herhangi bir noktada şey Sonsuz varsayalım.

Bu, hesaplama modeli olarak geçerli olmasının bir nedenidir. Hesaplamayı sonsuz bir aygıt tarafından gerçekleştirilen bir şey olarak tanımlamak mantıklı değildir.

Bununla birlikte, operasyonları sonsuz olabilir: sona ermeyebilir. Bu, hesaplama modeli olarak geçerli olmalarının bir başka nedenidir. Yalnızca her zaman sonlandırılması garantilenen işlemleri gerçekleştirebilen cihazlar olası tüm hesaplamaları ifade edemez.

Dahası: işlem sınırsız bellek gerektirir : kullanılan gerçek bellek miktarı her zaman sınırlı olsa da, keyfi olarak büyüyebilir. Böylece herhangi bir işlemin önceden ihtiyaç duyacağı tüm belleği sağlayamazsınız. Yalnızca belirli bir sabit bellek miktarından daha fazla kullanılmayacağı garanti edilen işlemleri gerçekleştirebilen cihazlar olası tüm hesaplamaları ifade edemez.


-1

"kutunun dışında düşünmek" ve Turing makinelerinin soyutlanmasının kalbine ulaşan ve daha önce cevaplanmamış farklı bir açıyla ortaya çıkan bu soru üzerine genelleme: evet, Turing makinelerinin "sonsuzlukları varsaymak" için bazı temel yönleri var çünkü kavram matematiğe özgüdür. TM'ler fiziksel makinelerin bir soyutlamasıdır. Zaman ve Mekanın fiziksel kavramları TM teorisinde kasıtlı olarak soyutlama olarak kullanılır, ancak gerçek muadillerinin yönleriyle de kullanılır.

kısacası TM muhtemelen teoride , yani durma problemi olarak sonsuza dek koşabilir . kaset sonsuzdur, ancak belirli bir zamanda sadece sınırlı bir miktarına yazılabilir. sonsuza dek çalışan bir TM temelde zaman ve mekanın sınırsız olduğunu, yani "sonsuz" olduğunu varsayar. aslında sonsuz olan karşılık gelen bir Zaman ve Mekan hiyerarşisi / "sürekliliği" vardır.

ancak fiziksel evrenin sınırlı olduğu varsayılarak bu soyut kavramın fiziksel olarak gerçekleştirilmesi mümkün değildir (sonuncusu Turing makinesindeki "sembollere" veya "mürekkebe" benzeyen uzay, zaman, madde). bir şekilde benzer şekilde / benzer şekilde, fizikte bazen evren sınırsız / sonsuz, ancak sadece bir soyutlama olarak kabul edilir. bunu çevirmek için, modern bir bilgisayarın bir Turing makinesi olarak "modellenmesinin" kendisi bir soyutlamadır, çünkü bilgisayar sadece sınırlı belleğe vb. sahip olabilir.

bir başka yararlı karşılaştırma ise matematikteki sayı çizgisidir . sayı satırı sonsuzdur, ancak sonlu sayıları gösterir. sayı çizgisindeki her sayı sonlu bir miktarı temsil eder, ancak bu sonlu miktarların sonsuz bir sayısı vardır. Turing makine bandı matematikteki sayı çizgisi konseptine güçlü bir benzerlik gösterir. Turing, onu sadece bir yönde sonsuz olarak kolayca tanımlayabilirdi, ancak her iki yönde de, matematik sayı çizgisine benzer şekilde, bant üzerinde "sol" negatif pozisyonlar ve "sağ" pozitif konumlarla sonsuz olarak tanımladı.

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.