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

Yinelenen Yerel Arama (Iterated Local Search)


Doğuhan ELMA

216 görünüm

Yinelenen Yerel Arama (Iterated Local Search), yerel arama algoritmasının bir çeşididir ve genellikle bir dizi iterasyon boyunca çalışır. Her iterasyonda, algoritma mevcut çözümü 'bozar' ve yeni bir başlangıç noktası oluşturur. Ardından, bu yeni başlangıç noktasından, bir yerel arama stratejisi kullanarak daha iyi bir çözüm bulmaya çalışır. Bu süreç, belirli bir durma kriteri karşılanana kadar tekrarlanır.

Yinelenen Yerel Aramanın temel fikri, yerel bir maksimuma (veya minimuma) ulaştığında, çözümü bir miktar bozup tekrar bir yerel arama başlatarak yerel optimumdan kaçmaktır. Bu, genellikle arama alanında daha fazla çeşitlilik sağlar ve algoritmanın genel maksimuma (veya minimuma) ulaşmasına yardımcı olur.

Bu algoritma genellikle aşağıdaki adımları içerir:

  1. Başlangıç çözümünü oluşturun.
  2. Yerel arama uygulayın ve yerel bir optimum bulun.
  3. Perturbasyon uygulayın (mevcut çözümü bir miktar 'bozun').
  4. Yeni bir yerel arama başlatın.
  5. Durma kriteri karşılanana kadar adımları 3 ve 4'ü tekrarlayın.
import random

# Amaç fonksiyonu
def amac_fonksiyonu(x):
    return x**2

# Yerel arama algoritması
def yerel_arama(en_iyi):
    yeni_cozum = en_iyi + random.uniform(-0.05, 0.05)
    if amac_fonksiyonu(yeni_cozum) < amac_fonksiyonu(en_iyi):
        en_iyi = yeni_cozum
    return en_iyi

# Yinelenen yerel arama algoritması
def yinelenen_yerel_arama():
    # Başlangıç çözümünü oluşturun
    en_iyi = random.uniform(-10, 10)

    # Başlangıç çözümünde yerel arama yapın
    en_iyi = yerel_arama(en_iyi)

    # İterasyonları gerçekleştirin
    for i in range(100):
        # Bir bozma oluşturun
        aday = en_iyi + random.uniform(-1, 1)

        # Yeni çözüm üzerinde yerel arama yapın
        aday = yerel_arama(aday)

        # Eğer yeni çözüm daha iyiyse kabul edin
        if amac_fonksiyonu(aday) < amac_fonksiyonu(en_iyi):
            en_iyi = aday

    return en_iyi

# Algoritmayı çalıştırın
en_iyi_cozum = yinelenen_yerel_arama()
print(f"Bulunan en iyi çözüm {en_iyi_cozum} değeri {amac_fonksiyonu(en_iyi_cozum)}")

Bu kod, belirli bir adım büyüklüğü ve iterasyon sayısı ile sınırlı basit bir yerel arama algoritması ve yinelenen yerel arama algoritmasıdır. Daha karmaşık hedef fonksiyonları, yerel arama stratejileri ve bozma yöntemleri üzerinde çalışırken bu kodu genişletebilirsiniz.

Akış Diagramı:

1.png

Animasyon:

 

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