Algoritma nedir?
Bu derste yapay zekânın temel yapı taşı olan algoritma kavramını sıfırdan anlatıyoruz: tanımını, beş temel özelliğini, günlük hayattan ve bilgisayar dünyasından somut bir örnekle, yapay zekâ ile ilişkisini. Dersin sonunda bir problemin çözümünü adım adım algoritmaya dökebilecek duruma geleceksin. Serinin tamamı için Yapay Zekâ dersleri sayfamıza bakabilirsin.
Algoritma Nedir?
Algoritma, belirli bir problemi çözmek ya da bir görevi tamamlamak için izlenmesi gereken sonlu sayıdaki, sıralı ve kesin adımların bütünüdür. Bir yol haritasına ya da yemek tarifine benzer: adımlar doğru sırayla izlenirse istenen sonuca ulaşılır. Buradaki kritik ayrıntı, bilgisayar bilimindeki algoritmanın belirsizliğe yer vermemesidir. Yemek tarifinde “biraz tuz ekle” yazabilirsin; ama bilgisayar için bu ifade anlamsızdır, çünkü “biraz” ölçülebilir bir şey değildir. Bilgisayarın anlayacağı algoritmada adım “1 çay kaşığı tuz ekle” gibi kesin olmalıdır.
Algoritmanın Beş Temel Özelliği
Bir adım dizisinin algoritma sayılabilmesi için şu beş şartı birlikte karşılaması gerekir:
- Girdi: Sıfır veya daha fazla giriş alır: hesaplanacak sayılar, aranacak bir kelime gibi.
- Çıktı: En az bir sonuç üretir. Sonuç vermeyen adım dizisi bir işe yaramaz.
- Kesinlik: Her adım tek anlamlıdır; “gerekirse”, “belki” gibi belirsiz ifadeler bulunamaz.
- Sonluluk: Sonlu sayıda adımdan sonra mutlaka durur, sonsuza dek sürmez.
- Etkililik: Her adım basit ve gerçekte uygulanabilir olmalıdır.
Adım Adım Bir Algoritma Örneği
Klasik bir problemle uygulayalım: verilen üç sayıdan en büyüğünü bulmak. İnsan sayılara bakıp cevabı hemen görür; bilgisayar ise adımlar açıkça tanımlanmadan bunu yapamaz:
- Sayıları oku ve bunlara a, b, c adını ver.
- enBuyuk adlı değişkene a sayısını ata.
- Eğer b sayısı enBuyuk değerinden büyükse, enBuyuk değerini b yap.
- Eğer c sayısı enBuyuk değerinden büyükse, enBuyuk değerini c yap.
- enBuyuk değerini sonuç olarak yaz.
Aynı mantık günlük hayatta da karşımıza çıkar: çorba pişirme tarifi, mobilya kurma kılavuzu ya da okulun kayıt prosedürü. Hepsi, aynı şartlarda izlendiğinde aynı sonucu üreten adım dizileridir. Bu yüzden algoritmayı yalnızca bilgisayarlara özgü bir kavram sanmak en yaygın yanılgılardan biridir.
Algoritma ile Yapay Zekâ Arasındaki İlişki
Klasik programlamada kuralları insan yazar: “Eğer şöyleyse şunu yap.” Yapay zekâda yaklaşım değişir. Makine öğrenmesi yaklaşımında algoritmanın görevi, kuralları verinin içinden kendisi çıkarmaktır. Kabaca bir benzetme yapalım: veri ham maddedir, öğrenme algoritması bu ham maddeyi işleyen tesis, model ise tesisin ürettiği çıktıdır. Bu çıktının ne olduğunu model nedir? dersinde, verinin modele öğretilme sürecini ise model eğitimi nedir? dersinde ayrıntısıyla işliyoruz.
2024–2025 döneminde her gün kullandığımız araçların arkasında bu tür öğrenme algoritmaları vardır: sohbet eden büyük dil modelleri, video platformlarının öneri sıralaması, telefonun yüz tanıma kilidi, e-postaların spam filtresi. Ortak noktaları şu: bunlar baştan elle yazılmış binlerce kuralla değil, çok sayıda örnekten öğrenerek çalışır. Öğrenme de ancak yeterli miktarda ve kaliteli veri seti olduğunda anlamlı sonuç üretir.
Algoritma ile Program Aynı Şey mi?
Hayır, ikisi sıkça birbirine karıştırılır ama aynı şey değildir. Farkı üç maddeyle özetleyelim:
- Algoritma fikir ve plandır; dilden bağımsızdır. Kâğıda, akış şemasına ya da düz Türkçeye dökebilirsin.
- Program, bu planın Python ya da Java gibi bir programlama diliyle yazılmış ve bilgisayarın çalıştırabildiği biçimidir.
- Aynı algoritmadan farklı dillerde birden fazla program yazılabilir; plan değişmez, yalnızca anlatım dili değişir.
Bu yüzden programlamaya yeni başlayanların önce problemi algoritmaya dökmesi, sonra koda çevirmesi işini kolaylaştırır. Algoritmayı pratiğe dökme tarafı için yazılım dersleri bölümümüze göz atabilirsin.
Algoritma Konusunda Sık Yapılan Hatalar
Yeni başlayanların en sık düştüğü çukurlar şunlardır:
- “Algoritma programın kendisidir” sanmak. Program, algoritmanın bir dile çevrilmiş hâlidir; önce algoritma, sonra program gelir.
- Belirsiz adım yazmak. “Gerekirse tekrar dene” gibi adımlar kesinlik şartını bozar; bilgisayar ne yapacağını bilemez.
- Bitiş koşulu koymayı unutmak. Ne zaman duracağı tanımlanmayan bir adım dizisi sonsuz döngüye girer ve sonluluk şartını ihlal eder.
- Adım sırasını karıştırmak. Yukarıdaki örnekte karşılaştırmalar farklı sırayla yapılsaydı algoritma yanlış sonuç üretebilirdi.
- “Yapay zekâ algoritmaları kendiliğinden düşünüyor” sanmak. Bu sistemler de insanların tasarladığı öğrenme prosedürlerini izler; başarıları verinin kalitesine ve tasarıma bağlıdır.
- Algoritmayı ne kadar uzunsa o kadar iyi görmek. Genellikle kısa, net ve gereksiz tekrardan arınmış algoritma daha iyidir.
Sık Sorulan Sorular
Algoritma nedir, kısaca nasıl tanımlanır?
Algoritma, bir problemi çözmek ya da bir görevi tamamlamak için sırayla izlenen, sonlu sayıdaki kesin adımların bütünüdür. Yemek tarifine benzer; ancak her adım net, sıralı olmalı ve bir yerde son bulmalıdır.
Algoritma ile program arasındaki fark nedir?
Algoritma dilden bağımsız bir çözüm planıdır; program ise bu planın bir programlama diliyle yazılıp bilgisayarda çalıştırılabilir hâle getirilmiş biçimidir. Aynı algoritmadan farklı dillerde birden çok program yazılabilir.
Yapay zekâda algoritmanın görevi nedir?
Makine öğrenmesinde algoritma, verinin içinden örüntüleri çıkarıp modeli oluşturan prosedürdür. Kuralları insan elle yazmaz; öğrenme algoritması örneklerden üretir. Sohbet botları, öneri sistemleri ve spam filtreleri bu mantıkla çalışır.