• Sonuç bulunamadı

Göçmen kuşlar en iyileme (Migrating Birds Optimization - MBO) algoritması tabiattan ilham alınarak inşa edilen meta-sezgisel komşuluk arama sistematikleri arasında en yeni metotlardan birisidir [4]. Algoritma özet olarak göçmen kuşların uzun mesafe uçuşlarında oluşturdukları V biçimindeki uçuş formasyonunu simüle eder. Kuşların Şekil 2.4’te görülen V biçimli uçuş formasyonu onların maruz kaldıkları hava sürtünmesini azaltır. Dolayısıyla bu formasyon, onların enerji sarfiyatını minimize eden efektif bir diziliş biçimidir. Örneğin, 25 kuştan oluşan ve V biçiminde uçan bir kuş sürüsünde her bir kuşun maruz kaldığı hava sürtünmesi %65’lere varan oranda azalır. Bu durum sürünün uçuş menzilini %70’e varan oranlarda artırır [139].

Şekil 2.4. Kuşların V biçiminde uçuşu

Bu uçuş biçimindeki yarar mekanizması kısaca şu şekilde açıklanabilir. Uçuş halindeki bir kuşun kanat hareketleri nedeniyle Şekil 2.5’te görüldüğü gibi bir çift

dönel girdap oluşur. Şekle uçuş yönünde bakıldığında, girdaplardan sol taraftakinin saat yönünde ve diğerinin de saat yönünün aksi yönünde dönüş sergiledikleri görülür [4,139]. Bu girdaplar kuşun tam arkasında aşağı yönde hava akımı, sağ arka ve sol arka kısımlarında ise yukarı yönde hava akımları oluştururlar. Aşağı yönde oluşan hava akımlarına maruz kalma kanatlarda oluşan sürtünmeyi artırması nedeniyle istenmeyen bir durumdur. Diğer taraftan yukarı yönde oluşan hava akımları kanatlarda oluşan sürtünmeyi azaltacağından, bu bölgede uçan diğer kuşlar için fayda sağlarlar. Azalan hava sürtünmesi kuşun enerji sarfiyatını azaltıp, menzilini artıracağından, en önde bulunan lider kuş hariç sürüdeki diğer kuşlar bu yukarı yöndeki hava akımı bölgelerinde yer alacak şekilde konumlanarak V uçuş biçimini oluştururlar. V uçuş biçiminde lider kuş en fazla enerjiyi harcayan kuş olurken, diğer kuşlar önlerinde uçan kuşların girdaplarından yararlanarak daha az enerji sarf ederler [4].

Şekil 2.5. Kanat hareketlerinden kaynaklanan dönel girdapların oluşturduğu aşağı ve yukarı yönlü hava akımı bölgeleri

MBO algoritmasının akış diyagramı Şekil 2.6’da ve algoritmanın kullandığı temel parametreler Tablo 2.1’de listelenmiştir [4].

Tablo 2.1. MBO algoritmasının temel parametreleri

Parametre Açıklama

n Toplam çözüm sayısı (sürü boyutu)

k Her bir çözüm için işlem yapılacak olan toplam komşuluk sayısı (1/uçuş hızı)

x Bir sonraki bireyle paylaşılacak çözüm sayısı (yukarı hava akımı)

m Lider değişimi için gerekli toplam iterasyon sayısı

19

Şekil 2.6. MBO algoritması akış diyagramı

n adet kuş pozisyonu üret, bunları farazi V uçuş biçimine yerleştir ve uygunluk değerlerini hesapla

Lider kuşa k adet komşu üret ve bunların uygunluk değerlerini hesapla

En iyi komşu uygunluk değeri liderinkinden daha iyi ise onun pozisyonunu lidere ata ve kullanılmayan en

iyi 2x adet komşuyu arkadaki iki kuşla paylaş

V uçuş biçiminde sıradaki kuş için öndeki kuştan alınan x adet pozisyona ilave olarak k-x adet komşu

üret ve uygunluk değerlerini hesapla

En iyi komşu uygunluk değeri sıradaki kuşunkinden daha iyi ise onun pozisyonunu sıradaki kuşa ata ve kullanılmayan en iyi x adet komşuyu arkadaki kuşla paylaş

Evet

Hayır

Bütün kuş pozisyonları iyileştirildi mi?

Hayır Lider değişimi için m adet tur tamamlandı mı?

Evet

Lideri kuşu değiştir

Hayır

Sonlandırma kriterleri sağlanıyor mu?

Evet

En iyi kuş pozisyonu

Başlangıç kuş

pozisyonlarının üretilmesi

Lider kuş pozisyonunun iyileştirilmesi

Diğer kuş pozisyonlarının iyileştirilmesi

Yorulan liderin değiştirilmesi

Sonlandırma kriterlerinin kontrolü

Algoritmanın çalışması şu şekildedir. Algoritmada her bir kuşun pozisyon bilgisi ilgili en iyileme probleminin olası çözümlerinden birini temsil eder. Algoritmanın ilk adımında kuşların pozisyonları rastgele üretilir. Bu işlem pozisyon bilgisini temsil eden değişkenlere tanımlı oldukları değer aralığında düzgün dağılımlı rasgele değerler atanması şeklinde gerçekleştirilir. Bu atama işlemi çoğu algoritmada olduğu gibi Denklem (2.1) kullanılarak yapılabilir [19,136]. Çözümler için pozisyon bilgileri üretildikten sonra bunlardan biri lider kuşu temsilen seçilir ve üretilen bütün çözümler farazi bir V formasyonu üzerine yerleştirilirler. Çözümlerin uygunluk değerleri hesaplanır. Daha sonraki algoritma adımlarında lider kuştan başlayıp V formasyonunun sağ ve sol kolları üzerinde en sondaki kuşlara varıncaya kadar tek tek ilerlenerek mevcut her bir çözüm ona komşuluklar üretilerek iyileştirilmeye çalışılır [4].

İkinci adımda lider kuşun pozisyonunun iyileştirilmesi hedeflenmiştir. Bu maksatla k

adet komşu çözüm üretilir ve bunların uygunluk değerleri hesaplanır. Komşu çözümler üretilirken değişik komşu üretme yöntemleri kullanılabilir. Örneğin Denklem (2.3) bu işlem için uygundur. Eğer en iyi uygunluk değerine sahip komşu çözüm lider kuştan daha iyi uygunluk değerine sahip ise, bu durumda ilgili komşu çözümün pozisyonu lider kuşu temsil eden çözüme atanır. En iyi uygunluk değerlerine sahip olan 2x adet kullanılmayan komşu çözüm ikinci sıradaki iki adet kuşla paylaşılır. Bunlardan x adedi ikinci sıradaki sağ koldaki kuş için ve diğer x adedi de ikinci sıradaki sol koldaki kuş içindir.

Üçüncü adımda lider kuş haricindeki diğer kuşların pozisyonlarının iyileştirilmesi denenir. Bir döngü içerisinde sağ ve sol kolda sıradaki kuşların her biri için (k-x) adet komşu çözüm üretilir ve bunların uygunluk değerleri hesaplanır. Yine Denklem (2.3) komşu çözüm üretmek için kullanılabilir. Üretilen komşu çözümler ile öndeki kuşu temsil eden çözümün paylaştığı x adet komşu çözüm birleştirilerek lider kuşta olduğu gibi toplam yine k adet komşu çözüm elde edilir. Daha sonra bu yolla elde edilen toplam k adet komşu çözüm içerisindeki en iyi uygunluk değerine sahip çözüm alınır. Bu komşu çözümün uygunluk değeri ilgili kuşu temsil eden çözümünkinden daha iyi ise komşu çözümün pozisyon bilgisi ilgili kuşu temsil eden çözüme atanır. En iyi

21

uygunluğa sahip olan ve kullanılmayan x adet çözüm bir sonraki kuşu temsil eden çözüm ile paylaşılır.

Birinci ve ikinci adımlarda üretilen komşu çözümlerin pozisyon bilgileri problem uzayının ilgili boyutu için tanımlı olan minimum ve maksimum limit değerlerinden birini aşarsa, aşılan limit değeri Denklem (2.4)’te tanımlandığı gibi üretilen komşu çözümün ilgili boyutuna atanır.

Birinci ve ikinci adımlarda bahsedilen, üretilen komşu çözümlerinin bir kısmının bir sonraki çözüm ile paylaşılması işlemi, gerçek kuşların V biçiminde uçarken öndeki kuşların oluşturduğu yukarı yöndeki hava akımından istifade etmelerini simüle etmektedir.

Bütün kuşlar için iyileştirme denemeleri tamamlandığında algoritmanın bir döngüsü tamamlanmış olur. Lider kuşu temsil eden çözüm için k adet komşu çözüm üretilirken bu sayı diğer kuşları temsil eden çözümler için (k-x)’tir. Bu durum gerçek kuş sürüsündeki lider kuşun diğerlerinden daha çok enerji harcamasını ve bu yüzden daha çok yorulmasını simüle etmektedir.

Algoritmanın dördüncü adımında önceden belirlenen m adet döngü tamamlandığında lider kuşun yorulduğu varsayılır. Yorulan lider kuş V diziliminin sağ veya sol tarafındaki kolun en sonuna gider ve aynı kol üzerinde ikinci sırada bekleyen kuş lider konumuna geçer. Bu değişim her defasında V diziliminin farklı kollarında gerçekleşir. MBO algoritmasının farazi V dizilimi üzerinde kuşları temsil eden çözümlerin yerleşimleri de benzeri mantık kullanılarak değiştirilir.

İkinci adımdan dördüncü adıma kadar olan işlemler algoritmanın belirlenen

sonlandırma kriterleri sağlanıncaya kadar tekrarlanır. Daha sonra algoritma durur ve mevcut çözümler (sürü) içerisinde en iyi uygunluk değerine sahip çözümü (kuşu) en iyileme probleminin elde edilen en iyi çözümü olarak verir.

MBO algoritmasının performansı k ve x parametrelerinin seçiminden direkt etkilenir. Dolayısıyla bu parametrelerin seçiminde dikkatli olunmalıdır. Gerçek kuşların uçuş

hızı ile k parametresi birbiriyle ters orantılıdır. Küçük k değerleri daha az komşu çözümler üretilmesine neden olur ve algoritmanın bir döngüsünün daha çabuk tamamlanmasını sağlar. Bu durum, k değerinin küçük seçilmesinin yüksek uçuş hızına neden olması şeklinde yorumlanır. Yüksek uçuş hızı MBO algoritmasının sonuca çabuk varmasını sağlar. Dolayısıyla az parametre içeren en iyileme problemlerinde k değerinin küçük seçilmesi bir avantaj olarak değerlendirilebilir. Öte yandan, k değerinin artırılması araştırma derinliğini artırır. Yüksek boyutlu problemlerde tatmin edici sonuçların yakalanabilmesi için k değerinin yüksek tutulması gerekebilir. Sonuç olarak, parametre sayısı fazla olan en iyileme problemlerinde daha iyi sonuçlar elde edebilmek için toplam işlem zamanından fedakârlık yapılarak k değeri artırılıp daha derin bir araştırma yapılması sağlanabilir.

Şekil 2.7. MBO algoritması sözde kodu

Denklem (2.1) aracılığıyla bütün çözümlerine rastgele başlangıç değerlerini ata Rasgele seçilen bir çözümü lider olarak seç

Çözümleri farazi bir V formasyonuna rasgele yerleştir sol = true

repeat

for i = 1 to m

Lider çözüme k adet komşu çözüm üreterek onu iyileştirmeyi dene

Kullanılmayan en iyi çözümlerden x adedini sol arkadaki x adedini de sağ arkadaki çözümlerle paylaş

for lider haricindeki çözümlerin her biri

Sıradaki çözüme (k-x) adet komşu çözüm üret ve öndeki çözümden alınan x adet çözümle birlikte sıradaki çözümü iyileştirmeyi dene

Kullanılmayan en iyi çözümlerden x adedini bir arkadaki çözümle paylaş

end for end for if sol then

lider çözümü farazi V formasyonun sol kolunun sonuna kaydır ve sol koldaki ilk çözümü lider olarak ata

else

lider çözümü farazi V formasyonun sağ kolunun sonuna kaydır ve sağ koldaki ilk çözümü lider olarak ata

end if

sol = not (sol)

until Durdurma kriterleri return Mevcut en iyi çözüm