Diferansiyel Evrim(Differential Evolution,DE)
Differential Evolution (DE), genel amaçlı bir optimizasyon algoritmasıdır ve genellikle sürekli değerli fonksiyonların global optimizasyonunda kullanılır. DE, popülasyon tabanlı bir arama algoritmasıdır ve genellikle oldukça basit ve anlaşılır bir algoritmadır. En önemli özelliklerinden biri, arama süreci sırasında hem arama alanının genişlemesine hem de yoğunlaşmasına izin veren bir mekanizmaya sahip olmasıdır.
Python'da, scipy.optimize.differential_evolution kullanarak DE uygulanabilir. Örneğin, Rastrigin fonksiyonunun global minimumunu aramak için DE'yi kullanabiliriz:
import numpy as np from scipy.optimize import differential_evolution def rastrigin(X): return 10*len(X) + sum([(x**2 - 10 * np.cos(2 * np.pi * x)) for x in X]) bounds = [(0,10)]*10 # 10 boyutlu bir problem result = differential_evolution(rastrigin, bounds) print(result.x) print(result.fun)
Bu kodda, 10 boyutlu bir Rastrigin fonksiyonunu minimize etmek için DE kullanılıyor. bounds değişkeni, her boyut için arama alanının alt ve üst sınırlarını belirler. Bu durumda, her boyut için arama alanı 0 ile 10 arasındadır.
Çıktı, global minimumun koordinatlarını ve minimum değerini içerir. Rastrigin fonksiyonunun global minimumu, tüm girişlerin sıfır olduğu yerdedir ve bu minimum değeri 0'dır. Bu nedenle, ideal olarak, algoritmanın result.x olarak tüm sıfırları ve result.fun olarak 0'ı döndürmesini bekleriz.
Ancak, bu her zaman garanti edilmez, çünkü DE ve diğer evrimsel algoritmalar rastgeleliğe dayanır ve her zaman global minimumu bulmayabilirler. Buna rağmen, DE genellikle karmaşık optimizasyon problemlerini çözmede oldukça etkilidir.
0 Comments
Recommended Comments
There are no comments to display.