İç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

Doğuhan ELMA

200 görünüm

Memetik algoritmalar (MA), genetik algoritmaların ve yerel arama algoritmalarının birleşimidir. İsmi, Richard Dawkins'in "meme" kavramından türetilmiştir. Dawkins, "meme" kavramını, kültürel bilgi birimlerini ifade etmek için kullanmıştır, bu kavram zamanla bir organizmadan diğerine aktarılır ve evrimleşir. Dawkins, genetik evrimin biyolojik özelliklerin nasıl evrimleştiğini açıkladığı gibi, memetik evrimin de kültürel özelliklerin nasıl evrimleştiğini açıkladığını belirtmiştir.

Memetik algoritmalarda, her birey bir çözümü temsil eder ve bu bireyler genetik operatörler (seçilim, çaprazlama ve mutasyon) aracılığıyla bir popülasyon içinde evrimleşir. Ancak, memetik algoritmalar, genetik algoritmalardan farklı olarak, her bireyin yerel arama algoritmaları kullanılarak daha da optimize edildiği bir adım içerir. Bu yerel arama adımı, bir "meme" olarak görülür ve bireyler arasında yayılır. Yani, her birey, kendi çözümünü iyileştirmek için bilgi kullanır.

Yerel arama adımı genellikle her nesil sonrası uygulanır ve bu da genetik algoritmalardan farklı olarak memetik algoritmalarda genellikle daha hızlı bir yakınsama sağlar. Memetik algoritmalarda çözüm genellikle daha iyi ve daha hızlı bir şekilde elde edilir çünkü algoritma, genetik algoritmaların genel arama yeteneğini ve yerel arama algoritmalarının yoğun arama yeteneğini birleştirir. Bu, memetik algoritmanın genellikle genetik algoritmadan daha iyi performans göstermesini sağlar.

Bir memetik algoritma, optimizasyon problemlerinin çözülmesi için geniş bir yelpazede uygulanabilir. Bu problemler, seyahat eden satış elemanı problemi, dizi hizalama problemleri, rota planlama problemleri ve daha fazlasını içerir. Ancak, memetik algoritmanın başarısı, genellikle yerel arama algoritmasının ve genetik operatörlerin doğru bir şekilde seçilmesine bağlıdır.

Bu örnekte, genetik algoritmanın ana hatlarına yerel arama adımını ekliyoruz.

import numpy as np

# Problem Parametreleri
num_variables = 10
population_size = 100
num_generations = 50
mutation_rate = 0.1
crossover_rate = 0.7

# Uygunluk Fonksiyonu
def fitness(individual):
    return sum(individual)

# Yerel Araştırma Fonksiyonu
def local_search(individual):
    for i in range(len(individual)):
        if individual[i] == 0:
            individual[i] = 1
            if fitness(individual) > fitness(individual):
                individual[i] = 0
    return individual

# Popülasyonu Başlat
population = np.random.randint(2, size=(population_size, num_variables))

# Her nesil için
for generation in range(num_generations):
    # Yeni popülasyonu sakla
    new_population = []
    
    # Her birey için
    for individual in population:
        # Yerel araştırma
        individual = local_search(individual)
        
        # Çaprazlama
        if np.random.random() < crossover_rate:
            other_individual = population[np.random.randint(population_size)]
            cross_point = np.random.randint(num_variables)
            individual[:cross_point], other_individual[:cross_point] = other_individual[:cross_point].copy(), individual[:cross_point].copy()
        
        # Mutasyon
        for i in range(num_variables):
            if np.random.random() < mutation_rate:
                individual[i] = 1 - individual[i]
        
        new_population.append(individual)
    
    # Popülasyonu güncelle
    population = np.array(new_population)

# En uygun bireyi yazdır
print("En uygun birey: ", max(population, key=fitness))

Bu örnek memetik algoritma, ikili değişkenlerden oluşan bir optimizasyon problemi çözmek üzere tasarlanmıştır. Algoritma, her bireyi bir bit dizisi olarak temsil eder ve bitlerin toplamını maksimize etmeye çalışır.

Algoritma ayrıca bir yerel arama adımı içerir. Bu adımda, bireyin her bir bitini bir seferde tersine çevirir ve bu terslemenin uygunluğu artırıp artırmadığını kontrol eder. Eğer bir tersleme uygunluğu artırırsa, o tersleme yapılır. Bu, bireyin kendi çözümünü iyileştirmek için kullandığı bir meme olarak düşünülebilir.

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