Tanınmış Turing makinesi, matematiksel işlemleri algoritmik kullanım yoluyla çözmeye yönelik niteliklere sahip, sağlam ve bağımsız bir matematiksel yapıya dayanmaktadır. Bu tanım çok karmaşık olmasına rağmen gerçek şu ki öyle değil.
Basitçe söylemek gerekirse bu makine, bilgisayar verilerini sonsuz olarak hesaplamak için 1936 yılında üretilmiş bir cihazdır. Hiç şüphe yok ki, gelişimi bilgisayar tarihinde önemli bir olaya işaret ediyor. Aslında bugün bildiğimiz bilgisayarların da bu makine sayesinde var olduğunu düşünebiliriz.
Basitçe söylemek gerekirse Turing makinesi karmaşık değildir. Tam tersine en önemli özelliklerinden biri de kolay performansıdır. Farklı süreçleri takip eden bir bant üzerindeki sembolik temsilleri kullanır. Ancak basit olması işe yaramaz olduğu anlamına gelmez. Tam tersi.
Bir Turing makinesi, çeşitli bilgisayarlardan gelen her türlü algoritmik kodu kabul eder. Bu anlamda bilgisayar davranışının mantığını kusursuz bir şekilde simüle eder.
Bu makine, adını İngiliz asıllı mucidi Alan Turing’e borçludur. Bu karakter hayatı boyunca farklı alanlarda öne çıktı. Öncelikle mantıksal bir deha olarak öne çıktı. Aslında yukarıdan bakıldığında makineye başlangıçta “mantıksal hesaplama makinesi” adı verildi.
Turing makinesi, bilgi işlem tarihindeki en önemli katkılardan birini temsil ediyor.
Turing makinesinin yaratılış tarihi
19. yüzyıla gelindiğinde matematik birçok alanda önem kazanmıştır. Ancak bu henüz resmiyet kazanmamıştı. Konu uzmanlarının çoğu bu çalışma alanını oluşturmak için yoğun çaba harcamışlardır.
Bu, gerçekleştirilmesi bir makinenin sorumluluğunda olacak bir grup sembol ve yöntem üzerinde bir hipotezin uygulanması meselesiydi.
Alan Turing, Turing makinesi girişimini 1936’da ortaya çıkardı. Bu tam olarak “Hesaplanabilir sayılar üzerine, Entscheidungsproblem uygulamasıyla” araştırmasının sunumunda gerçekleşti. Aynı yıl yayınlanan yayın, David Hilbert’in matematiğin karar verilebilirliğine yaklaşımını analiz ediyordu.
Başka bir deyişle yaklaşım, herhangi bir matematiksel cevaba uygulanabilecek sabit bir prosedürün varlığını doğrulamaktı ve bu da söz konusu sonucun doğru olup olmadığını teyit ediyordu. Yukarıdakilere dayanarak Alan Turing, Turing makinesini tasarladı ve bazı makinelerin çeşitli algoritmaları çözebileceğini doğruladı.
Şu ana kadar Turing önemli bir miras bıraktı. Çalışmaları fiziksel temsile odaklanmasa da modern bilgisayar tasarımıyla ilgisi inkar edilemez. Bütün bunlarla birlikte bir bilgisayarın davranışını gözlemlediğimizde bir Turing makinesiyle karşı karşıya kalırız.
Turing makinesi nasıl yapıldı?
Bir Turing makinesinde, depolama aygıtı olarak işlev gören yönetim bölümlerine ayrılmış sınırsız sayıda bant bulunur. Ayrıca kasete kod okuyan ve yazan bir kafası vardır. Öte yandan aynı kısım bandın bir yerden başka bir yere taşınmasından da sorumludur.
Ayrıca bir durum kontrolü kaydı ve azaltılmış bir süreç tablosu içerir. İkincisi aynı zamanda eylem tablosu olarak da bilinir. Daha önce de belirttiğimiz gibi Turing makinesi otomatik olarak çalışır. Bu nedenle, farklı algoritma türlerini deşifre etmek için Chomsky hiyerarşisi yönetilir.
- Şerit : Bu şerit bölümlere ayrılır ve her biri diğerine göre konumlandırılır. Tüm hücreler sınırlı bir primerin sembollerine sahiptir. Astarın da “B” adı verilen özel bir sembolü vardır. Ayrıca başka ek semboller de içerir. Bant, işiniz için gerektiği kadar her iki yönde (sola veya sağa) uzanır.
- Kafa – Turing makinesinin bu kısmı banttaki kodları okur ve üretir. Ayrıca bandı ilgili yönde hareket ettirmekten de sorumludur. Kafa modeline bağlı olarak hareket edebilir. Eğer öyleyse, bant sabittir.
- Durumu Kaydetme – Adından da anlaşılacağı gibi, cihazın durumunu kaydetmeniz gerekir. Bu sınırlı bir durumu ifade eder. Ek olarak, kaydın çalışmaya başladığı belirli bir açılış durumu vardır. Alan Turing, bireyin belirli bir matematiksel işlemi gerçekleştirmesi durumunda her bir durumun “zihinsel durum”un yerini aldığını belirtmektedir.
- Talimat Tablosu – Temel olarak tüm Turing makinesi komutlarıyla ilgilenir. Yani cihazın belirli bir zamanda ne çalıştırması gerektiğini gösterir. Örneğin, diğerlerinin yanı sıra kafayı hareket ettirin, bir sembol yazın veya silin.
Turing makinesi nasıl çalışır?
Bir Turing makinesi, kafa bandın üzerine yerleştirildiğinde üç temel görevi yerine getirir. Bu cihaz, belirli bir hücrede bulunan sembolü okur, hücrede bulunan sembolün değerini değiştirir veya komşu hücrenin şifresini çözüp değiştirmek için şeridi sağa veya sola hareket ettirir.
Ayrıca değerlerin her birinin ilgili bir görevi olabilir. Yani örneğin okunan sembol 1 rakamına karşılık geliyorsa Turing makinesi 0 yazar ve şeridi sağa doğru hareket ettirir. Ancak okunan sembol 0 ise makine 1 sayısını yazar.
Turing makinesinin gerçekleştirdiği bu göreve ters çevirme denir. O halde bunda ikili değerlerin payı var. Böylece bir Turing makinesi, çok karmaşık algoritmaları çözen belirli görevleri yerine getirmek üzere programlanır. Bu cihazın temel amacı matematiksel işlemlerle hesaplanan sayılardır.
Turing makinesi ne için kullanılır?
Aslında Turing makinesinin tarihi boyunca sayısız kullanımı olmuştur. Ve en azından matematiği görme ve yorumlama şeklimizi değiştiren devrim niteliğinde bir buluş. Daha önce örneğin bir dil oluşturucu olarak kullanılıyordu.
Ancak bu noktada tartışılabilecek birçok uygulama var. En önemlilerinden bazıları şunlardır:
- Hesaplama Teorisi – Bu teori, bilgisayar bilimi ve matematik çalışmasının bir parçasıdır. Temel amacı bilgisayarların temel niteliklerinin ve sınırlarının analizidir. Özellikle bu teori, bir işlemi karmaşıklık düzeyine göre hesaplama ve sınıflandırma olanağını kabul eden matematiksel prosedürler bulmaya çalışır.
- Oracle Makinesi : Bu, belirli bir sayısal sembolojiyle ilgili soruları yanıtlayan bir kehanete sahip bir Turing makinesi türüdür.
Ne tür Turing makineleri mevcuttur?
Turing makinelerinin birkaç türü vardır. Her biri algoritmik problemlerin gerçekleştirilmesini basitleştirmek amacıyla doğdu. Beş tür aşağıda açıklanmıştır:
- Stay Direktifli Turing Makinesi – Bu makinenin tek yönde hareket eden sınırsız bir bandı vardır. Genellikle bant sağa doğru hareket eder. Sola doğru hareketlilik devre dışıdır.
- Çift Yönlü Turing Makinesi – Bir Turing makinesinin sınırsız sayıda bandı varsa, çift yönlü bir makine gibi çalışabilir ancak iki yolludur. Bu durumda bilgiler, varsa bantların düzenine göre konumlandırılır.
- Çoklu Bant Turing Makinesi – Adından da anlaşılacağı gibi birden fazla bant içerir. Özelliği, her birinin kendi kafasına sahip olmasıdır. Dolayısıyla bu parçaların her biri bağımsız olarak çalışır. Öte yandan aynı yönde veya aynı anda hareket etmeleri de şart değildir.
- Çok Boyutlu Turing Makinesi : Bu durumda makine şeridinin çeşitli boyutları vardır. Yani sağa, sola, yukarı aşağı hareket eden iki boyutlu bir bant. Makinenin durumuna ve şifresi çözülecek algoritmaya bağlı olarak durum değiştirilir.
- Deterministik olmayan Turing makinesi : Deterministik bir makineyi deterministik olmayan bir makineyle simüle etmek mümkündür (veya tersi). Deterministik durumunda, şerit sembolü ve mevcut durum için seçim yapılabilecek sınırlı sayıda sayıdan oluşan hangisine dayanır.
Turing makinesinin avantajları nelerdir?
Bu tip makinelerin diğerlerine göre en önemli avantajlarından biri dilinin oldukça geniş olmasıdır. Öte yandan, algoritma tamamen yeniden okumaya gerek kalmadan yetkilendirilebilir veya reddedilebilir. Bir Turing makinesiyle uğraşırken işlemler yine de hesaplanır. Üstelik kodlamasına da karar veriliyor .
Bu makineler dili listeler veya numaralandırır. Öte yandan sahip oldukları özerklik başkalarıyla karşılaştırılamaz. İkincisi, farklı durumlar arasında geçiş yapmasına izin verir. Bellek yeterince büyük olduğundan mantıksal denklemleri özetlemeye gerek yoktur.