Yayınlayan: Ergin Altıntaş - [Değerlendirme : 8.00 (3 oylar) | Değerlendirin]
Karmaşık matematiksel hesapların belirli bir düzenek tarafından yapılıp yapılamayacağı 20.yy'ın başlarında büyük bir tartışma konusu olmuştu. Öteden beri el ile veya zihinden yapılan hesaplamalar çok zaman almakla birlikte, birçok hatayı da beraberinde getiriyordu. Tüm bu tartışmalar sürerken, 1936 yılında, ünlü matematikçi Alan M. Turing 'Saptama Problemi Hakkında Bir Uygulamayla Birlikte Hesaplanabilir Sayılar' (On computable numbers, with an application to the Entscheidungsproblem) isimli bir makalesini yayınladı. Makalesinde teorik ve matematiksel temellere dayalı sanal bir makineden bahseden Turing, her türlü matematiksel hesabın bu sanal makineyle yapılabileceğini iddia ediyordu. Turing'in 1950 yılında yayınlanan 'Hesaplama Mekanizması ve Zeka' (Computing Machinery and Intelligence) isimli ikinci makalesi ise, makineler ve zekayla ilgili birçok tartışmalı konuya cevap niteliğindeydi. İşte bu makalelerde sözü geçen sanal makine daha sonraları Turing Makinesi (The Turing Machine) olarak isimlendirildi.
Turing Makinesi teorik bir hesap makinesi olarak düşünülebilir. Makine temel olarak, okuma ve yazma işlemlerini gerçekleştiren bir kafa, sonsuz uzunluktaki bir şerit, o anki pozisyonu tutan bir yazmaçtan (register) oluşmaktadır. Makinenin kafa kısmı aynı anda sadece tek bir hücredeki bilgiyi okuyabilir, gerekirse sağa ve sola hareket edebilir.

Şerit üzerindeki hücrelerin, sadece 1, 0 ve boşluk karakterini içermesi bir zorunluluk değildir. Herhangi bir semboller bütünü şerit üzerine yazılabilir, fakat Turing tarafından tanımı yapılan makine bu haliyledir. Turing Makinesi donanımdan daha çok, bir bütün olarak yazılıma benzetilebilir. Makinenin hangi işlemleri yapacağı, kafanın ne tarafa hareket edeceği ve nerede duracağı çeşitli tablolar ile ifade edilir. Bu tablolar bir nevi algoritma olarak düşünülebilir.
Örneğin ikilik sistemdeki bir sayıyı 1 ile toplayan Turing Makinesi'ni, aşağıda görülen tablo ile ifade edebiliriz. Aynı işlemi yapan fakat daha farklı durumlar içeren Turing makineleri de olabilir. Bu tamamen makinenin işleyiş sistemini oluşturan kişiye bağlıdır.

Yukarıda bulanan tablodaki sembollerin anlamları sırasıyla;
b : Boş
< : Sola İlerle
> : Sağa İlerle
dur : Dur
Tablodan da anlaşılabileceği gibi, ifadeler bir takım üçlülerden oluşmaktadır. Bu üçlülerden ilki yazılacak karakteri, ikincisi gidilecek yönü, üçüncüsü ise bir sonraki durumu belirtir. Makinenin kafası şeritten okuduğu 1, 0 ve b'ye göre, o hücredeki sembolü silip, yerine bir başka sembol yazar. Makinenin başlangıçta Durum-1 pozisyonunda olduğunu varsayalım, eğer şeritten okuduğu değer 1 ise, oradaki 1'i silip yerine 0 yazar daha sonra bir kez sola ilerler ve Durum-1 pozisyonu korur (0<1). Tablo baz alınarak makinenin nasıl bir işleyiş sergileyeceği ve işlemler sonunda nasıl bir sonuçla karşılanacağı tahmin edilebilir.
Bir de Evrensel Turing Makinesi (Universal Turing Machine) kavramı bulunmaktadır. Bu makine herhangi bir Turing Makinesinin gerçekleştirdiği işlemi gerçekleştirebilir ve aynı çıktıyı verebilir. Turing Makinelerinin sadece teorikte kalmasının tek sebebi gerekli olan şerit uzunluğunun sonsuz uzunlukta olmasıdır. Günümüz bilgisayarlarının çok büyük veri saklayabilme kapasitesi göz önüne alındığında, kullandığımız yazılımlar, Turing Makinesi'nin pratikte olan uygulamaları olarak kabul edilebilir. Bu şekilde bir varsayımdan yola çıkarak, kullandığımız çeşitli işletim sistemlerinin de birer Universal Turing Makinesi olduğunu söyleyebiliriz.
Turing ortaya attığı bütün bu fikirleriyle, günümüz bilgisayarlarının temelini oluşturmuş ve akıllı makinelerin yapılabilirliği konusunda çalışan herkese büyük bir yol gösterici olmuştur.
Kaynaklar:
"On Computable Numbers, with an Application to the Entscheidungsproblem" - Alan Turing (1936)
"Computing Machinery and Intelligence" - Alan Turing (1950)
http://www.turing.org.uk/turing/index.html
Simetrik, ICQ:375235
Yayınlayan: Ergin Altıntaş - [Değerlendirme : 8.00 (3 oylar) | Değerlendirin]

