Sitemde yazar kısmını okumuşsanız Karadeniz Teknik Üniversitesi’nde okuduğumu fark etmişsinizdir. İstatistik ve Bilgisayar Bilimleri bölümünde 4. sınıfta ilk dönemde verilen Yapay Zeka dersini ben de aldım. Derste algoritmalar üzerine epey konuşuldu. Sınavda da bu algoritmalardan sorulacaktı o yüzden çalışmam gerekiyordu. En doğru çalışma şekli yazmak olduğundan bir yandan yazarken diğer yandan sitede yazayımda paylaşırım, belki birilerinin işine yarar düşüncesiyle yazmaya başladım. Sonuç olarak birkaç algoritmayı yazdım ve sizlerle paylaştım.

Parçaçık Sürü Optimizasyonu

  1. Başlangıç sürüsünü, hızları ve pozisyonları oluştur.
  2. Sürüdeki tüm parçacıkların uygunluk değerini hesapla.
  3. Her jenerasyonda tüm parçacıklarını önceki jenerasyonun en iyileri ile karşılaştır. (P.best)
  4. En iyi yerel değişkenleri kendi arasında karşılaştır ve en iyi olanı küresel en iyi olarak ata. (G.best)
  5. Hız ve pozisyon değerlerini yenile.
  6. En iyi çözü bulununcaya kadar 2. adıma geri dön.

Benzetimli Tavlama

  1. Başlangıç konumunu rastgele belirle.
  2. Güncel durumun rastgele komşusunu seç.
  3. Eğer seçilen durum güncel durumdan iyi ise yeni durumu güncelle.
  4. Değilse yeni duruma belli olasılıkla şans ver.
  5. Güncel durum hedefe ulaşmışsa işlemi sonlandır.
  6. Değilse 2. adıma geri dön.

Karınca Koloni Algoritması

  1. Başlangıç feromon değerleri belirlenir.
  2. Karıncalar her düğüme rastgele yerleştirilir.
  3. Her karınca sonraki şehri, denklemde verilen lokal arama olasılığına bağlı olarak seçmek suretiyle turunu tamamlar.
  4. Her karınca tarafından katedilen yolların uzunluğu hesaplanır.
  5. En iyi çözüm hesaplanır ve global feromon yenilenmesine kullanılır.
  6. Max iterasyon sayısı ya da yeterlilik kriteri sağlanan kadar 2. adıma gidilir.

Tabu Algoritması

  1. Bir başlangıç çözüm seç ve onu mevcut en iyi çözüm olarak kaydet.
  2. Mevcut çözümün komşularını bir komşuluk yapısıyla üret.
  3. Tabu olmayan veya tabu olsa bile tabu yıkma ölçütünü sağlayan bir komşu çözüm seç ve onu en iyi çözüm olarak al.
  4. Mevcut çözümden yeni çözüme geçiş özelliğini tabu listesine ekleyerek listeyi güncelle.
  5. Eğer yeni çözüm o ana kadar ki en iyi çözümden daha iyi ise onu yeni en iyi çözüm olarak kaydet.
  6. Bir durdurma ölçütü sağlanana kadar 2. adıma dön.

Genetik Algoritma

  1. Başlangıç popülasyonu oluştur.
  2. Popülasyondaki her kromozomu uygunluk fonksiyonu ile değerlendir.
  3. Yeni popülasyon için yeni kromozomlar oluştur. (Seçme, çaprazlama, mutasyon)
  4. Adım 2 ve adım 3’ü uygun çözüm bulununcaya veya belirlenen iterasyona kadar tekrarla
  5. En iyi kromozomu çözüm olarak al.

A* (A Star) Algoritması

  1. Rastgele noktalar ve aralarındaki uzaklık oluşturulur.
  2. Başlangıç ve bitiş noktaları belirlenir.
  3. En düşük değerli düğüm alınır ve sıradan aktarılır.
  4. Gidilen düğüme göre komşu tüm düğümlerin değerlerini güncelle.
  5. Hedefe ulaşılmışsa adım 3’e dön.

Enine Arama

  1. Düğümü işaretle
  2. Düğümü kuyruğa ekle
  3. Kuyruktan ilk elemanı al
  4. Elemanın ziyaret edilmeyen yavrularını kuyruğa at

Bir önceki yazımız olan Veri Madenciliği Algoritmaları ve Teknikleri başlıklı makalemizi de okumanızı öneririz.

Bir Cevap Yaz