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. |