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