Jump to content
  • entries
    55
  • comments
    2
  • views
    281

Evrim Stratejileri (Evolution Strategies, ES)


Doğuhan ELMA

56 views

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.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...