Bu yazıda bugün yapay zeka adıyla bize anlatılan birçok şeyin özü ve hatta tamamı olan algoritma nedir, algoritma türleri ve en iyi algoritmalar nedir anlatıyoruz.
Algoritma nedir?
Bir algoritma, bir dizi belirli eylemi gerçekleştirmeye dayalı bir problemi çözmek için bir prosedür veya formüldür. Bir bilgisayar programı, ayrıntılı bir algoritma olarak görülebilir. Matematik ve bilgisayar bilimlerinde ise, bir algoritma, genellikle tekrarlayan bir problemi çözen küçük bir prosedür anlamına gelir.
Algoritmalar, BT’nin tüm alanlarında yaygın olarak kullanılmaktadır. Örneğin, bir arama motoru algoritması, girdi olarak anahtar sözcük ve operatörlerin arama dizilerini alır, ilgili web sayfalarını bulmak için ilişkili veritabanını arar ve sonuçları döndürür .
Bir şifreleme algoritması, verileri korumak için belirtilen eylemlere göre dönüştürür. Bir gizli anahtar algoritması, örneğin ABD Savunma Bakanlığı’nın Veri Şifreleme Standardı (DES), aynı anahtarla veri şifreler ve çözer. Algoritma yeterince karmaşık olduğu sürece, anahtara sahip olmayan hiç kimse verilerin şifresini çözemez.
- Yapay Zeka nedir, türleri, tarihi ve uygulamaları
- Algoritmalar yargı dağıtırsa…
- Yapay zekanın kısa tarihi
Algoritma adı nereden geliyor?
Algoritma adı, 750 – 850 yılları arasında Bağdat’ta yaşayan ve kraliyet mahkemesinin bir parçası olan matematikçi Muhammed ibn-Musa el-Khwarizmi’nin adından gelmektedir. Harizmi’nin çalışmaları cebirin de kaynağı olarak görülmektedir.
Algoritma türleri
Birden çok algoritmayı bir araya getirerek, bir bilgisayar programı oluşturabilirsiniz. Tahmin edebileceğiniz gibi, çözülmesi gereken neredeyse her tür matematik problemi için çok sayıda algoritma türü vardır. İşte algoritma türleri listesi:
- Sayısal algoritmalar
- Cebirsel algoritmalar
- Geometrik algoritmalar
- Sıralı algoritmalar
- İşlemsel algoritmalar
- Teorik algoritmalar
Kendilerini icat eden matematikçilerin adını taşıyan çeşitli algoritmalar da vardır:
- Shor’un algoritması
- Girvan-Newman algoritması
- Çeşitli Öklid algoritmaları
Ayrıca, çözdükleri belirli problemin isimlerine göre adlandırılan algoirtmalar da vardır, örneğin:
- Çift yönlü arama algoritması
- K-yolu birleştirme algoritması
Bilgi işlem alanında çoğu algoritma, veri yönetimi ve analiz problemlerini çözme amacıyla kullanılır.
İyi bir algoritmanın özellikleri
- Girdi ve çıktı tam olarak tanımlanmalıdır.
- Algoritmadaki her adım açık ve net olmalıdır.
- Algoritmalar, bir sorunu çözmenin birçok farklı yolu arasında en etkili olmalıdır.
- Bir algoritma bilgisayar kodunu içermemelidir. Bunun yerine algoritma, farklı programlama dillerinde kullanılabilecek şekilde yazılmalıdır.
Basit bir algoritma örneği
Kullanıcı tarafından girilen iki sayıyı eklemek için bir algoritma örneği:
1. Adım: Başla
Adım 2: num1, num2 ve sum değişkenlerini bildirin.
3. Adım: num1 ve num2 değerlerini okuyun.
Adım 4: num1 ve num2’yi ekleyin ve sonucu toplama atayın.
I ← num1 + num2
Adım 5: Toplamı görüntüle
6. Adım: Durdur
En iyi algoritmalar listesi
Ohio Eyalet Üniversitesi’nin bir makalesine göre en iyi hesaplama algoritmaları aşağıdakilerdir.
Sıralama
Verileri verimli ve kullanışlı bir şekilde düzenlemeye yarar. Bunlar arasında hızlı sıralama, birleştirme sıralaması, sayma sıralaması yer alır.
Arama
Sıralanmış veri kümelerinde anahtar verileri bulmayı sağlar. En yaygın olanı ikili türdür, ancak web uygulamaları tarafından kullanılan derinlik, genişlik ve ilk arama örnekleri de bulunur.
Hash’leme
Aramaya benzer, ancak indeksleme ve anahtar kimliği bileşeniyle. hashing olarak bilinen hash’leme, belirli verilere bir anahtar atadığı için üstün sonuçlar sağlar.
Dinamik programlama
Daha büyük, karmaşık sorunları daha küçük sorunlar dizisine dönüştürür.
Kareleme ile Üstel (EbS)
İkili üs alma olarak da bilinen EbS, büyük tam sayıların, polinomların, kare matrislerin ve diğer karmaşık problemlerin hesaplanmasını hızlandırır.
Dize Eşleştirme ve Ayrıştırma
Önceden tanımlanmış terimler ve kısıtlamalar kullanarak büyük veri kümelerindeki kalıpları bulmak için tasarlanmıştır.
Asallık Testi
Asal sayıları deterministik veya olasılıksal olarak belirler, bu algoritma çoğunlukla kriptografide (şifrelemede) kullanılır.
Algoritmaların kullanım alanları
Ağ iletişimi, paket yönlendirme ve trafik yönetiminden güvenlik ve şifrelemeye kadar her şeyi yöneten algoritmalara da büyük ölçüde dayanır. Geleneksel olarak, yönlendirme algoritmaları sabit ağ etkinliği noktaları oluşturdukları için büyük ölçüde statiktir.
Ancak son zamanlarda ağ sağlayıcıları, trafik veya topoloji değerlendirmelerine yanıt olarak anında değişiklikler yapabilen daha uyarlanabilir algoritmalara yöneldi.
Algoritmalar, yüksek hızlı hisse senedi alım satımından otomatik bulaşık makinelerine kadar dijital dünyadaki hemen hemen her şeyin merkezinde yer alır.
Gerçek dünya problemlerini çözmek için de algoritmalar sıklıkla kullanılır. Bir bilgisayarla yaptığınız hemen hemen her şey, bir şekilde, birisinin çözmek için çok çalıştığı bir algoritmaya dayanır. Modern bir bilgisayardaki en basit uygulama bile, belleği yönetmek ve sabit sürücüden veri yüklemek için perde arkasında algoritmalar kullanılmadan mümkün olmazdı.
İnsanların incelediği farklı algoritmalar, çözdükleri problemler kadar çeşitlidir. Bununla birlikte, çözmeye çalıştığınız sorunun bazı açılardan başka bir soruna benzer olma ihtimali yüksektir. Geniş bir algoritma yelpazesi hakkında iyi bir anlayış geliştirmek, bir problem için doğru olanı seçebilecek ve doğru şekilde uygulamayı sağlıyor. Pek çok problem, gerçekçi görünmese de, gerçek dünyada her gün ortaya çıkan aynı algoritmik bilgi setini gerektirir.