1000Fikir

Yönetici
Yönetici
Mesajlar
1,941
Algoritma sözcüğü Ortaçağda Latince'ye Algorismus olarak geçen Türk matematik bilgini Muhammed Bin Musa el Harezmi'nin (780-850) adından türemiştir. Harezmi'nin, 12. yüzyılda Latince'ye Liber Algebre et Almochabolae Mahmed Moysi Algaurizmi adıyla çevrilen Kitab ÜL Muhtasar Fi Hesab El-Cebr Ve'l Mukabele adli yapıtı Batı düşüncesine cebir bilmini tanıtan bir eserdir. Algebra sözcüğü de kitabın Arapça adındaki El-Cebr sözcüğünden gelmektedir. Harezmi eserlerinde, Hint aritmetiğinden esinlenerek geliştirdiği onlu sayı sistemini, denklem kurma yoluyla birinci ve ikinci derece denklem çözümünü, cebirsel işlemleri, toplamayı, çıkarmayı, ikiye bölmeyi, bir sayının iki katını bulmayı, çoğaltma ve bölmenin kesir hesaplarının nasıl yapıldığını açıklamaktaydı. Geliştirdiği yöntemle gündelik yaşamdaki miras, faiz, arazi ile ilgili problemleri başarıyla çözdü. Harezmi problem çözümlerini ve çözümlemelerini sistematik bir tanıtlama yapısında sunarak bugünkü anlamda formel algoritmanın temelini atmıştır.​
Algoritma daha sonra özellikle matematiğin önem kazandığı 18. yüzyıldan bu yana giderek geliştirilmiştir. Algoritmalar Harezmî'den önce de kullanılmaktaydı. Örneğin, Eski Yunanda Eukleides'in (M.Ö. 365-275) Elements adli kitabında tanımladığı, iki sayının en büyük ortak bölenini (EBOB) bulma yöntemi, bilinen en eski algoritmalardandır. Öklid algoritması olarak tanınan bu algoritma, verilen iki doğal sayıyı tam olarak bölen en büyük tamsayıyı bulma yöntemidir. Bu algoritmayı 2340 ve 1263 sayı çiftine uygulayacak olursak, bu sayılardan büyüğünü küçüğüne bölüp kalanı bulacağız. 2340'da 1263 bir kere vardır ve kalan 1087'dir. Şimdi bölünen yerine böleni, bölen yerine de kalanı koyup, tam bir bölme işlemine kadar bu süreci tekrarlayalım:​
Bölünen​
Bölen
Kalan
2340​
1263​
1087​
1263​
1087​
176​
1087​
176​
56​
176​
56​
8​
56​
8​
0​
İşlem süreci sonunda elde edilen 8 sayısı en büyük ortak bölendir. Dikkat edilecek olursa her adımda yapılacak işlem açıkça bellidir ve bu sonlu işlem adımları tamamlanınca kesin bir sonuca varılır. İşlem süreci sonludur ve sürecin ne zaman sonlandırılacağının belirli bir kuralı vardır. Bu tür algoritmaların mantıksal işlemleri akış şeması ile gösterilir. Örneğin, yukarıda uyguladığımız algoritmanın akış şemasını şöyle gösterebiliriz:​
2019-10-14_22-20-27.png
Yukarıdaki akış şemasından da anlaşılacağı gibi, söz konusu algoritma herhangi bir doğal sayı çiftine uygulanabilen genel sistematik bir yöntemdir. Sayılar ne kadar büyürse büyüsün, sayıların büyüklüğü işlem sürecini uzatır, ama işlem sonlu bir adımda tamamlanmak zorundadır. Öyleyse, genel olarak tanımlayacak olursak, algoritma, belirli bir sonuca ulaşmak ya da belirli bir problemi çözmek için açık bir yönergeyi adım adım izleyerek yapılan sonlu mekanik bir işlemdir.​
Günlük yaşamımızda pek çok işi ayırdında olmadan bir algoritmayla yaparız. Örneğin, bir "aşure tarifi", bir "antrenman programı", ya da bir "kullanım klavuzu" bir tür algoritmadır. Bu algoritmalarda izlenecek adımlar belirli bir sırayla verilmiş olsalar bile, bazı adımların yer değiştirmesi sonucu etkilemeyebilir. Ayrıca bazı adımlarda yapılacak işlemler yoruma, hatta kişisel beğeniye açık olabilir. Kişisel beceri, keyfiyet, yaratıcılık gibi etkenler sonucu etkileyebilir.​
Bu tür uıfonnel algoritmaları, işlem sürecinde her adımın açık ve belirli olduğu, her türlü olasılığın düşünüldüğü formel algoritmalardan ayırmak gerekir. Zaten, algoritma sözcüğü de genel olarak bu tür formel algoritmalar anlamında kullanılır. Önermeler mantığında bir tamdeyimin (formula) totoloji olup olmadığını çözümleyici çizelgeyle ya da doğruluk çizelgesiyle sınamak, kağıt kalemle yaptığımız dört işlem, mantıksal çıkarım kuralları ile belirli bir kuramdan bir önermenin mantıksal olarak çıktığını göstermek bu tür formel algoritmalara örnektir.​
Algoritmalar pek çok alanda uygulanmaktadır. En eski uygulama biçimi, günümüzde de kimi Asya ülkelerinde kullanılan, ilk hesaplama aygıtı olarak, Abaküs diye de bilinen, Çörkü'dür. Üzerinde kullanılan kalker taşından yapılan boncuklar dolayısıyla calx olarak adlandırılmış, daha sonra bu hesaplamanın adı calculus olarak yaygınlaşmıştır. Yakın zamana kadar kullanılan "mekanik yazar kasa"lar, algoritmaların bir başka uygulama biçimiydi. Onların yerini alan "elektronik yazar kasa"lar da, gerçekte bu algoritmaların proglamlama aracılığıyla uygulanmasına dayanırlar. Yine, elektrik devreleri formel algoritmaların bir başka uygulama biçimdir.​
Algoritmalar günümüzde en yaygın biçimde bilgisayar programcılığı alanında kullanılmaktadır. Bilgisayara verdiğimiz herhangi bir "komut", bir algoritmanın işlemlenmesinden başka bir şey değildir. Bilgisayar bilimleri, problemleri algoritmik tasarımlarla çözme işidir. Çözüm algoritmaları geliştirip, bu algoritmalara uygun donanımlar tasarlamak, algoritmanın donanım üzerinde işlemlenebilirliğini sağlamak için uygun programlama dilleri (algoritma yazma dilleri) geliştirmek, bu bilimlerin temel çalışma alanlarını oluşturur.​
Özellikle 20. yüzyılın başlarında mantık ve matematik felsefesindeki tartışmalar, algoritma kavramının kuramsal olarak irdelenmesine de yol açmıştır. Matematiği tartışılamaz sağlamlıkta bir temel üzerine kurmak için genel bir program {Hilbert Prog' raim) öneren Alman matematikçi David Hilbert, bir matematik probleminin çözümü için, ilkece algoritmik bir yöntem bulunup bulunamayacağını sorar. Diğer bir deyişle, Hilbert matematiğin bütün problemlerini ard arda çözebilecek genel mekanik bir formel yöntem peşindedir. Hilbert ve formalistler salt matematiği ve mantığı, bir dizi formel kural ya da algoritmayla çözümlenebilecek problemler içeren bir aksiyomatik sistem olarak görürler. Oysa, 1931'de Avusturalyalı mantıkçı Kurt Gödel böyle bir aksiyomatik sistemin kurulamayacağını kanıtlamıştır. Daha sonra İngiliz matematikçi, bilgisayarcı ve şifre uzmanı Alan Turing, Hilbert'in Entscheidımgsproblem (karar verme problemi) diye bilinen problemine genel bir yanıt vermeye çalışmıştır. Turing insan beynini bir "makina" olarak ele almış ve bu makinin yaptığı matematik işleri de "mekanik" işler olarak görmüştür. Diğer bir deyişle, Turing'e göre bir matematikçinin bir matematik sorusuyla uğraşması mekanik bir iştir. Turing karar verme problemini, kendi adıyla anılan Turing Makinası'nın belirli bir algoritmayı işlemlemesi sonunda "dur" konumuna geçip geçmeyeceğine karar vermesi sorunu olarak ele almıştır. Bu problem "Halting" problemi olarak bilinmektedir. Turing, bir Turing Makinası'nın durup durmayacağına karar verecek evrensel bir algoritmanın olamayacağını göstermiştir. Yani Entscheidungsproblem çözümsüzdür. Amerikalı mantıkçı Alanzo Church de aynı zamanda farklı bir yoldan ayni sonuca ulaşmıştır.​
Her ne kadar Entscheidftngsproblem doğrudan matematik ve mantıkla ilgili görünse de, temel olarak algoritmaya dayanan yapay zekâ konusuyla da yakından ilgilidir. Yapay zekâcılar, insan beyninin çalışmasını çok karmaşık bir algoritmanın uygulanması olarak ele almaktadırlar. Bazı yapay zekâcılar, bilgisayar robotlarda algoritmik davranışların yeterince karmaşık duruma getirilmesi başarıldığında, bilinçlilik, özgür irâde, güzellik, haz, acı, mizah duygusunun bile ortaya çıkacağına inanmaktadırlar. Dolayısıyla bilinç, zekâ, düşünme, duyumsama, anlama gibi rasyonaliteyi oluşturan şeyler, beynimizin geliştirdiği algoritmanın özelliklerinden başka bir şey değildir. Rasyonaliteyi bütünüyle soyut algoritmanın mantıksal yapısıyla özdeşleştiren bu yapay zekâ yaklaşımı, aklın bedenden ayrı ve farklı bir gerçekliğe sahip olduğunu savunan Kartezyen yaklaşımın bir versiyonu olmak durumundadır.​
R. Penrose, The Emperor's new Mind: Concerning Computers, Minds, and The Laws of Physics, Oxford University Press, 1989.​
D. R.Hofstadter D. C. Dennet(ed-), The Mind's I. Basic Books, Inc., Penguin Books, Ltd., Harmondsworth, Middx, 1981.​
Ayrıca bkz., AKİL, BİLİM TARİHİ, BİLİNÇ, BİLİŞSEL BİLİM, MATEMATİK, YAPAY ZEKÂ, ZİI-IİN FELSEFESİ.​
Felsefe Ansiklopedisi / Etik Yayınları​
 

Çevrimiçi Üyeler

Şu anda çevrimiçi üye yok.

Forum İstatistikleri

Konular
1,554
Mesajlar
2,334
Üyeler
24
Son Üye
Tabu
Üst