Evrim Stratejileri (Evolution Strategies, ES)
Evrim Stratejileri (Evolution Strategies, ES), genetik algoritmalar ve genetik programlama gibi evrimsel algoritmaların bir alt kümesidir. ES, genellikle sürekli optimizasyon problemlerinde kullanılır ve genellikle genlerin mutasyonlarına odaklanır. Her bir birey, bir çözüm ve bir veya daha fazla strateji parametresi içerir. Bu strateji parametreleri, genellikle çözümün mutasyon özelliklerini belirler.
Aşağıda, basit bir Evrim Stratejisi örneği verilmiştir. Bu örnekte, DEAP (Distributed Evolutionary Algorithms in Python) kütüphanesi kullanılmıştır. DEAP, genetik algoritmalar ve evrimsel stratejiler de dahil olmak üzere bir dizi evrimsel algoritmayı destekler.
import numpy as np from deap import algorithms, base, benchmarks, cma, creator, tools # Problem boyutu NDIM = 10 creator.create("FitnessMin", base.Fitness, weights=(-1.0,)) creator.create("Individual", list, fitness=creator.FitnessMin) toolbox = base.Toolbox() toolbox.register("evaluate", benchmarks.rastrigin) def main(): # Her biri 10 boyutlu bir vektör olan bir popülasyon oluşturun np.random.seed(128) strategy = cma.Strategy(centroid=[5.0]*NDIM, sigma=5.0, lambda_=20*NDIM) toolbox.register("generate", strategy.generate, creator.Individual) toolbox.register("update", strategy.update) hof = tools.HallOfFame(1) stats = tools.Statistics(lambda ind: ind.fitness.values) stats.register("avg", np.mean) stats.register("std", np.std) stats.register("min", np.min) stats.register("max", np.max) # Evrim stratejisi ile evrimi başlat algorithms.eaGenerateUpdate(toolbox, ngen=250, stats=stats, halloffame=hof) return hof if __name__ == "__main__": main()
Bu örnekte, Rastrigin fonksiyonunu en aza indirgemek için bir ES algoritması kullanıyoruz. Rastrigin fonksiyonu, genellikle global optimizasyon algoritmalarını test etmek için kullanılan karmaşık ve dalgacık bir fonksiyondur. Algoritmanın hedefi, bu fonksiyonun çıktısını en aza indirgemektir.
0 Comments
Recommended Comments
There are no comments to display.