İçeriğe atla
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×

Yapay Zeka

  • makale
    55
  • yorum
    2
  • görüntüleme
    717.221

Evrim Stratejileri (Evolution Strategies, ES)


Doğuhan ELMA

236 görünüm

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 Yorum


Önerilen Yorumlar

Görüntülenecek yorum yok.

Misafir
Yorum ekle...

×   Zengin metin olarak yapıştırıldı.   Bunun yerine düz metin olarak yapıştır

  Yalnızca 75 emojiye izin verilir.

×   Bağlantınız otomatik olarak gömüldü.   Bunun yerine bağlantı olarak görüntüle

×   Önceki içeriğiniz geri yüklendi.   Düzenleyiciyi temizle

×   Görüntüleri doğrudan yapıştıramazsınız. URL'den resim yükleyin veya ekleyin.

×
×
  • Create New...