“Algoritma” kelimesi basında arama motorlarının ve sosyal ağların opak işleyişini belirtmek için yaygın olarak kullanılmaktadır.
Ama tam olarak neden bahsediyoruz? Algoritma nedir? Bu kavram, Öklid’den GAFAM algoritmalarına kadar tarih boyunca ilerlemiştir. Algoritmalar herhangi bir sorunu çözebilir mi? Davranışları üzerinde ne gibi garantilerimiz var? Toplumsal etkileri nelerdir?
9. Yüzyıl’da İran’da Ortaya Çıktı
Etimoloji, algoritmaların tarihini, denklemleri çözmek için ilk kılavuzları 800 yıllarında yayınlayan İranlı bilgin Muhammed İbn Mūsā al-Khuwārizmī’ye kadar takip eder. Cebirin kökenindeki yöntemleri tipik olarak pratik hesaplama problemleriyle ilgilidir: kalıtım veya ölçüm soruları.
Eserleri 12. yüzyılda Latince’ye çevrildi ve İtalyan matematikçi Leonardo Fibonacci gibi şahsiyetler tarafından popüler hale getirildi. “Algoritma” teriminin kökeninde “algoritmi” veya “algorismi” ile Latinceleştirilmiş adıdır. Öklid, kendisinden yaklaşık bin yıl önce, Elementler’de iki sayının en büyük ortak bölenini hesaplamak için bir yöntem tanımlamıştı.
20. yüzyılda algoritma kavramı matematiğin dallarını oluşturur.
Bununla birlikte, algoritma kavramının resmileştirilmesi 20. yüzyılın başına kadar değildi . 1900’de Paris’teki ikinci uluslararası matematikçiler kongresindeki ünlü konuşmasında, Alman matematikçi David Hilbert, matematik topluluğu için 23 açık problem, 23 meydan okuma önerdi; bunların açıklamaları aşağıda matematiğin gelişimi üzerinde önemli bir etkiye sahip olacaktı. onlarca yıl.. Onuncu problem, “sonlu sayıda işlem aracılığıyla, tamsayı katsayılı bir polinom denkleminin tamsayılar cinsinden bir çözümünün varlığının belirlenebileceği bir yöntemin” (“Diophantine” denklemleri) varlığı ile ilgilidir. Aslında tehlikede olan bir algoritmanın varlığıdır.
Diğerlerinin yanı sıra Alan Turing ve Alonzo Church’ün kurucu çalışmaları sayesinde algoritmalar kendi başlarına matematiksel nesneler haline gelir. Alan Turing, 1936 tarihli makalesinde , bir fonksiyonun “hesaplanabilirliği” tanımını verir: değerini, bir geçiş sistemi ve bir şeridin içeriği tarafından yönlendirilen, sonlu sayıda temel adımda veren bir makine olmalıdır. hafıza rolünü oynar. Bu ünlü “Turing makinesi”.
Alan Turing, bir aksiyomlar sisteminde bir fonksiyonun hesaplanabilirliği ile matematiksel bir iddianın kanıtlanabilir karakteri arasındaki bağlantıyı anlar. Teorik bilgisayar bilimi, matematiğin bir dalı haline gelir.
Algoritmaların gücünü sınırlandırıyoruz ve bazı problemlerin karar verilemez olduğu görülüyor: onları çözecek bir algoritma yok. 1970’de Julia Robinson ve Youri Matiassevitch nihayet Hilbert’in onuncu problemini çözdüler: Diophant denklemlerinin çözümü karar verilemez bir problemdir!
1970’lerde, bir algoritmanın onları çözmek için ihtiyaç duyduğu zamana ve alana göre problem hiyerarşileri kuruldu: buna karmaşıklık teorisi deniyordu .
Algoritma nasıldır?
Algoritmalar genellikle yemek tarifleriyle karşılaştırılır: Sonlu sayıda adımda sonuç elde etmeyi sağlayan bir dizi kesin talimat.
Bu görüntü doğrudur, ancak kuşkusuz temel bir yönü, bir algoritmanın işlenecek verileri (sayılar, metin, ilişkiler) aldığı ve belirli talimatların koşullu olduğu gerçeğini gizler: izlenen adımlar bu verilere bağlıdır ve yürütmeler bir dizi takip edebilir. tabi tahmin etmesi zor. Bu talimatlar farklı iyi tanımlanmış formlarda (akış şeması, açıklama dili) veya hatta gerekli önlemler alınarak doğal dilde verilebilir .
Hepimiz ilkokulda, gelişmiş formalizmin yardımı olmadan iki sayıyı çarpma algoritmasını öğrendik. Algoritmalar, prensip olarak, bir bilgisayar tarafından anlaşılabilir bir programlama dilinde, bir program şeklinde uygulanmaya yöneliktir. Ancak algoritma bu çeviriden bağımsız olarak var olur.
Modern hayatımızdaki algoritmaların kapsamını anlamak için ailelerini ayırt etmeliyiz.
Algoritmalarla ilgili mevcut sorunları ve zorlukları daha iyi anlamak için, kapsamlarını ve sonuçları ve davranışları üzerinde garanti edebileceğimiz özellikleri belirlemek önemlidir. Bu anlayış için bir algoritma tipolojisi esastır.
İlk olarak, günlük hayatımızda neredeyse görünmez hale gelen bir algoritma ailesini ayırt edebiliriz. Bunlar , sonuçları kolayca doğrulanabilen, mükemmel şekilde tanımlanmış görevler için kesin algoritmalardır : iki sayıyı çarpma, bir ad listesini alfabetik sıraya göre sıralama, bilgileri verimli bir şekilde saklama ve alma, bir analog sinyali dijital bir sinyale dönüştürme, bir programı yorumlama.
Bunlar, bilgisayar biliminin başlangıcından beri çalışılan temel algoritmalardır. Yine de bunlar mevcut araştırmaların konusudur, bazı temel işlemlerin karmaşıklığı etrafında pek çok gizem kalmaktadır. Örneğin, iki tamsayıyı çarpma probleminin tam karmaşıklığı, teorik bir bakış açısından hala açıktır: Şu anda çarpmanın zorunlu olarak toplamadan daha uzun sürdüğünü gösteremiyoruz! En iyi bilinen çarpma algoritması çok yakın zamanda yayınlandı.
Optimizasyon algoritmaları ikinci önemli bir aileyi oluşturmaktadır. “Hedef fonksiyon” adı verilen bir değeri en üst düzeye çıkaran veya en aza indiren parametreleri veya bir konfigürasyonu tanımlamaya çalıştığımız sorunları çözerler. Somut uygulamalar, örneğin, iki nokta arasındaki en kısa yolun aranması, bir projenin aşamalarının süresini en aza indirecek şekilde programlanması, belirli bir alanı daha düşük bir maliyetle kapsayacak şekilde anten konumlarının seçilmesinden oluşur. Gecikmeyi en aza indirmek için bir ağın yönlendiricilerinin parametreleri.
Bu iki ailenin algoritmalarının amaçları ölçülebilir ve sonuçları matematiksel olarak garanti edilir. Resmi yöntemler , bir algoritmanın özelliklerini titizlikle doğrulamayı mümkün kılar. Doğrusal optimizasyon algoritmaları iyi anlaşılmıştır.
Daha uzmanlaşmış üçüncü bir algoritma ailesi, iletişim ve işlemlerin güvenliğini garanti etmeyi amaçlayan kriptografik algoritmalardır . Bu güvenlik genellikle algoritmik problemlerin karmaşıklığıyla ilgili varsayımlara dayanır. Ünlü RSA algoritması (adını mucitleri Ronald Rivest, Adi Shamir ve Leonard Adleman’dan almıştır), örneğin, elektronik ticaret işlemlerinin güvenliğini, bir sayıyı asal faktörlerine ayrıştırmak için etkili bir algoritma olmadığı varsayımına dayandırır .
Yapay zeka araştırmalarından kaynaklanan bazı prosedürler ise, titiz analizlere kolay kolay teslim olmamaktadır.
Algoritmalar yapay zeka ile doğayı değiştiriyor
Bunların arasında, sınıflandırma algoritmaları girdi olarak alınan verileri harici bir gerçekliğe karşılık gelen bir kategoriye yerleştirmeye çalışır. Örneğin bir hayvan tanıma algoritması, girdi olarak piksel dizisi biçiminde bir görüntü alacak ve bu görüntünün bir kediyi mi yoksa bir yunusu mu temsil ettiğini belirlemesi gerekecek. Bu görev resmi olarak iyi tanımlanmamıştır: Muhtemelen insanlar tarafından verilen cevapların farklı olabileceği belirsiz bir görüntü bulunabilir. Bu algoritmaların doğruluğu, resmileştirilmemiş bir dış gerçekliğe bağlıdır ve doğruluğu veya kesinliği ancak deneysel olarak belirlenebilir.
Aynı şekilde, tahmin algoritmaları , fiziksel dünyada ölçülen belirli niceliklerin veya bir popülasyondaki davranışların evrimini tahmin etmeye çalışır. Örneğin, finansta pazarların gelişimini tahmin etmek için veya pazarlamada, bir web sitesine gelen ziyaretçilere dikkatlerini çekmesi en muhtemel ürünleri veya reklamları göstermek için kullanılırlar. Sonuçların uygunluğu burada yine matematiksel olarak değil, deneysel olarak doğrulanmıştır. Öyle ki 2006 yılında Netflix şirketi, film reytinglerini tahmin etme algoritmasının performansını artırmak için bir milyon dolarlık bir ödülle bir yarışma başlattı.
Bu algoritmaların geliştirilmesi, olasılıklı modellerin yanı sıra titizlikle analiz edilmesi zor olan yapıların da yoğun bir şekilde kullanılmasını sağlar. Bu, özellikle, bu ağlarda kullanılan katman sayısına göre, şimdi “derin öğrenme” olarak adlandırılanda kullanılan yapay sinir ağlarının algoritmaları için geçerlidir. Bu ağlar, bir öğrenme aşaması sırasında sağlanan verilerin belleğini örtük olarak kodlar ve yeni girdi verilerinin sınıflandırılmasını mümkün kılar.
Algoritmalardan ne talep edebiliriz?
Algoritmaların her yerde bulunması meşru olarak korkuların konusudur. Hangi garantileri talep edebiliriz? Birinci tür garanti, etkinlikle ilgilidir . Cevap için ne kadar beklememiz gerekiyor? Ne kadar hafızamız olmalı? Bu sorular iyi araştırılmıştır ve titiz , ancak kısmi formülasyonlara ve yanıtlara sahiptir. Özellikle algoritmik karmaşıklık anlayışımızdaki boşluklar, RSA algoritmasına dayalı kriptografiyi tehlikeye atan benzeri görülmemiş saldırılar olasılığını açık bırakıyor.
Geleneksel performans sorunu, ekolojik etkileri olan kaynak tüketimi sorunlarıyla yakından bağlantılıdır . Bu soruya daha geniş bir çerçeve verebiliriz ve yazılımların, sunucuların tükettiği kaynakları merak edebiliriz. Kriptografik algoritmalar alanında, kripto para birimlerinin işleyişinin kalbinde yer alan belirli mekanizmalar, özellikle “iş kanıtı” ilkesi, dramatik bir enerji etkisine sahiptir.
Hedefler, bir sıralama algoritması durumunda olduğu gibi kolayca doğrulanabilir olduğunda veya bir optimizasyon algoritması durumunda olduğu gibi açıkça nicelleştirildiğinde, çözümün kalitesinin nesnel bir ölçüsü vardır. Ancak optimizasyon algoritmaları söz konusu olduğunda, amaç fonksiyonunun seçimi, yani optimize edilen nicelik, önemli bir insan etkisine sahip olabilir.