Ana içeriğe geç

Optimizasyon

Genetik algoritmayı tanımlayın

cBots'un nasıl optimize edilebileceğini tartışırken, cBots'un genetik algoritma yöntemi kullanılarak geliştirilebileceğinden bahsetmiştik. Bu kılavuzda, tam olarak ne olduğunu ve nasıl çalıştığını açıklıyoruz.

Genetik algoritma yöntemi, doğal seçilim teorisine dayanmaktadır. Bu teoriye göre yalnızca en uygun bireyler sonraki üreme için hayatta kalır.

cBot optimizasyonunda, her optimizasyon denemesi bir birey olarak kabul edilir. Bireysel denemeleri değerlendirmek için, genetik algoritma her deneme için belirli bir uygunluk puanı hesaplar ve bu puanı diğer tüm denemelerle karşılaştırır.

Çalışması için, genetik algoritmanın başlangıç popülasyonuna ihtiyacı vardır. Bunu oluşturmak için, optimize edici, rastgele parametrelerle birkaç farklı deneme çalıştıracaktır. Başlangıç popülasyonunu oluşturduktan sonra, algoritma en uygun optimizasyon denemesini bulma sürecini başlatacaktır. Bu süreç, alt denemelerin uygunluk puanları durgunlaşmaya ve yakınsamaya başlayana kadar devam eder. Bu noktada, algoritma durdurulur.

Genetik algoritma aşamaları

Her genetik algoritmanın aşağıdaki aşamaları vardır.

graph TB
  B([Seçim]) ==> C([Çaprazlama]);
  C ==> D([Mutasyon]);
  D ==> B;

Aşamalar şu şekilde açıklanmıştır.

Seçim

Bu aşamada, algoritma, ilgili uygunluk puanlarını kullanarak en uygun iki optimizasyon denemesini bulur.

Çaprazlama

En uygun iki optimizasyon denemesini bulduktan sonra, algoritma, her iki ana denemenin parametre değerlerinin kombinasyonlarını kullanarak yeni alt (veya yavru) denemeler oluşturmak için bunları kullanır.

Örnek

cBot'unuz optimizasyon için dört farklı parametreye sahipse, algoritma, yavru denemelerin birinci ve ikinci parametrelerinin değerlerini bir ana denemeden ve üçüncü ve dördüncü parametreleri ikinci ana denemeden alacaktır.

Mutasyon

Bu aşamada, algoritma, bir veya daha fazla parametre değerini rastgele değiştirerek yavru denemeleri mutasyona uğratır.

Mutasyon aşamasından sonra, optimize edici yeni bir yavru optimizasyon denemesi çalıştıracaktır. Daha sonra, tüm aşamaları tekrarlayacaktır ancak yalnızca bir yavru denemenin uygunluk puanı son en uygun optimizasyon denemesinden daha yüksekse. Böyle bir sonuç, iyileştirme için yer olduğu anlamına gelir ve optimizasyonun devam etmesi gerektiğini gösterir.

Aksi takdirde, algoritma durgunluk sayacını artıracaktır. Durgunluk sayacı, algoritma durgunluk süresi parametresinin değerine ulaşırsa, optimizasyon süreci otomatik olarak durdurulacaktır.

Genetik algoritma parametreleri

Genetik algoritmanın ömrü boyunca kullandığı birkaç parametresi vardır. Bu parametreler değiştirilemez.

Parametre Tanım
Popülasyon büyüklüğü Bir popülasyonun maksimum boyutu veya her optimizasyon tekrarı sırasında yapılan maksimum deneme sayısı.
Maksimum tekrar sayısı Algoritma tarafından gerçekleştirilen maksimum optimizasyon tekrarı sayısı.
Durgunluk dönemi Durgunluk sayacının maksimum değeri. Bu değere ulaşılırsa, algoritma durdurulur.
Elit yüzdesi Bu değer, mevcut algoritma tekrarından en yüksek uygunluk puanlarına sahip bireylerin %X'ini seçmek için kullanılır. Bu denemeler bir sonraki tekrara geçecektir.
Turnuva boyutu yüzdesi Bu değer, rastgele oluşturulan denemelerin %X'ini eklemek için kullanılır her yeni tekrar veya popülasyon üretimi sırasında.
Göçmen yüzdesi Bu değer, rastgele oluşturulan denemelerin %X'ini eklemek için kullanılır her yeni tekrar veya popülasyon üretimi sırasında.
Mutasyon yüzdesi Yavru denemelerin parametrelerinin mutasyona uğratılacak yüzdesi.
Mutasyon olasılığı yüzdesi Mutasyona uğratılacak yavru denemelerin yüzdesi. Bu yüzdeye dâhil olmayan denemeler mutasyon aşamasından geçmeyecektir.