Bilgisayar ve bilgisayar türevi bütün cihazlarda bulunan programlar kodlarla oluşturulur. Ancak kodlar yazılmaya başlamadan önce yapılan ilk şey, işe aslında bir algoritma yazmak olur. Bir başka deyişle programlar için de her şey önceden planlanır, algoritmalar da bu planlara verilen isimdi.
Peki algoritmalar yalnızca programlar için mi geçerli? Kesinlikle değil. Günlük hayatta karşılaşabileceğiniz birçok farklı sorun algoritmalarla çözülüyor. Hatta algoritmalar, salgın hastalıklarla mücadelede yapılan planlarda bile kullanılıyor. Hangi durumda ne yapılması gerektiğine ilişkin planlar da algoritma özelliği taşıyor. Bugun de konuyu merak eden herkes için algoritma nedir, hayatlarımız için neden önemli konusuna değineceğiz.
Algoritma nedir?
Algoritmanın geçmişten günümüze değişim yaşamış bir anlamı var. Kelime, Orta Çağ'da “ondalık sayı sistemine göre” anlamına geliyordu. Günümüzde ise “bir takım işlemlerin adım adım uygulanmasıyla bir sorunun giderilmesi veya sonuca en hızlı biçimde ulaşılması” anlamında kullanılıyor. Yani algoritma için aslında temel düzeyde mantıksal tasarım da denilebilir.
Daha anlaşılır olması adına bir işi yerine getirmek için oluşturulmuş adımlardan oluşan bir listeyi örnek verebiliriz. Mesela bilgisayarınıza bir program yüklemek için aşağıdakine benzer bir algoritma akış şeması oluşturulabilir:
- Adım 1: X sitesine git.
- Adım 2: İndirme tuşuna tıklayarak indirmeyi başlat.
- Adım 3: Programın yükleme dosyasına tıkla.
Algoritma günlük hayatta nasıl karşımıza çıkar?
Elbette hayatta her şeyi yapmak için algoritmaya ihtiyacınız yok. Ancak algoritma kullanımını hayatınıza sokmayı başarırsanız, zamanla işlerinizi daha verimli bir şekilde yerine getirebildiğinizi fark edeceksiniz. Çünkü bir iş yaparken, her ne kadar iyi yaptığınızı düşünüyor olsanız bile elinizde size rehberlik edecek bir liste olması hata yapma şansınızı en aza indirger.
Şimdi günlük hayatta karşımıza çıkabilecek algoritma örnekleri verelim. Örneğin bir yemek yapmak ve makarna pişirmek istiyorsunuz, ancak makarnanın nasıl yapıldığını bilmiyorsunuz. Tam bu noktada internetten makarna tarifine baktınız. Tarifte adım adım neler yapmanız gerektiği yazıyorsa, temel düzeyde bir algoritma ile karşılaştınız demektir.
İkinci örneğimizde ise bir yol tarifi olsun. Arkadaşınızın çalıştığı yeri ziyarete gitmek istiyorsunuz ancak çalıştığı binaya nasıl gideceğinizi bilmiyorsunuz. Arkadaşınız da size “arkanı pastaneye ver”, “ilk sağdan gir” gibi adımlardan oluşan bir mesaj yolluyor. Bu mesaj da bir algoritma örneği olarak verilebilir.
Peki bilgisayar algoritması nedir?
Gelelim algoritma kullanımının bilgisayarlarda nasıl olduğuna... Bilgisayarlar, yaptıkları tüm işlemleri programlar aracılığıyla yapar. Bir programın bilgisayarı yönetmesi için ne zaman ne yapması gerektiği bilgilerini, adım adım anlatmak gerekir. Bu metni anlamanızın sebebi Türkçe bilmenizdir. Bilgisayarlar ise algoritmaları çeşitli programlama dilleri sayesinde anlarlar. Yazılımcılar da komutları bu "yabancı dillere" göre bilgisayarlara anlatmayı bilen kişilerdir.
Yazılan program aracılığıyla bilgisayara ne yapması gerektiğini söylerken aynı zamanda nasıl yapması gerektiğini de seçmeniz gerekir. Bilgisayar algoritmaları da tam olarak bu noktada devreye girer. Bilgisayarlar her ne kadar "zeki" gibi görünseler de aslında kendilerine neyi nasıl yapacaklarını anlatmamıza ihtiyaç duyan, insana bağımlı makinelerdir.
Örneğin 1.000 tane kelimeyi alfabetik sıraya dizen bir program yazıldı diyelim... Program yazılırken “Alfabetik sıraya göre dizilim nasıl yapılır?” sorusunu yanıtlayan bir algoritma hazırlamak gerek. Eğer hazırlanan algoritma ve programlama doğru ise kelime sayısı kaça çıkarsa çıksın bilgisayar her seferinde bütün kelimeleri başarıyla alfabetik sıraya göre dizecektir.
Algoritmaların geleceği: Geçmişimizi bilerek geleceği tahmin eden yazılımlar…
Algoritmaların potansiyelini küçümsemek, içinde bulunduğumuz çağa bir hakaret olabilir. Dünya’nın dört bir yanı, geçmişte yalnızca insanlar tarafından yapılabilen işleri yerine getiren bilgisayar ve bilgisayar türevi (akıllı telefonlar, robotlar vs.) cihazlarla dolu. Ancak hemen hemen her konuda olduğu gibi algoritmalarda da bilim başrolde.
ABD'nin Pensilvanya eyaletinde 2010 yılından beri geliştirilmekte olan bir algoritma, yargıçlara karar verirken yardımcı olması adına davalarda kullanılacak. Yani hukuki kararların nasıl uygulanacağını önceden bilen bir yazılım göreceğiz. Yapay zeka tabanlı bu yazılım, hukuki kararlar vermek için anıkların geçmişlerine ait verileri analiz edecek ve gelecekte suç işleme ihtimalini ortaya koyacak. Tabii algoritmanın yapacağı şey yalnızca bir tahmin olacağı için, son karar hâkimlerde olacak.
Bu algoritma yakın zamanda ABD'deki bazı davalar için 12 ay boyunca kullanılacak. Daha sonra hakkında bir değerlendirme yapılıp sistemin ne kadar işe yaradığı, ne gibi konularda eksik kaldığı gibi konular görüşülecek. Sonucun ne olacağını şimdiden kestirmek her ne kadar zor olsa da bir gün buna benzer bir algoritmanın kusursuza yakın çalışabileceği ihtimali oldukça heyecan verici.
Sözü geçen algoritmanın başarılı olması sonucunda en büyük olumlu etkisi şu olacak: Her ne kadar bu işte uzman ve saygıdeğer insanlar olsalar da hâkimler de en nihayetinde insan. Hepsi farklı kişiliklere sahip. Yani onlar da robot değiller. Kurallardan oluşan yazılı kitaplar olmasına rağmen çoğu davada hâkimlerin insiyatifi büyük bir rol oynuyor.
Ortada hâkimlere yardımcı olacak bir algoritma olması hem hâkimlerin işini kolaylaştıracak hem de hâkimlerin gözünden en ufak bir şeyin bile kaçması olasılığını yok edecek. Ancak şimdilik bunların hepsi teoride kalıyor. Önce algoritmanın denenmesi sonucunda elde edilecek sonuçları beklemek gerek.
Algoritmanın ne olduğunu ve ne olabileceğini aktardığımız yazımızın burada sonuna geliyoruz. Sizler mahkemelerde algoritmalara söz hakkı verilmesinin doğurabileceği sonuçlar hakkında ne düşünüyorsunuz? Cevaplarınızı yorumlar kısmından paylaşabilirsiniz.