• Sonuç bulunamadı

2. PROBLEMLERİN TANIMLANMASI VE KARMAŞIKLIK ANALİZİ

3.4. Ağ Modüllerinin Tespitinde Kullanılan Yöntemler

3.4.1. Ayrık Yarasa Algoritması

Yarasa Algoritması (Bat Algorithm), yarasaların ekolokasyon olarak ifade edilen sesin yankılanmasından faydalanılarak bir cismin bulunduğu yönün ve uzaklığın belirlenmesi gibi davranışlarına göre modellenen ve bu canlıların karanlık ortamlarda dahi hareket edebilmelerine imkan sağlayan temel özelliklerinden esinlenen sürü zekasına dayalı metasezgisel optimizasyon algoritmasıdır (Yang 2010). Bu algoritma

Xin-She Yang tarafından önerilmiştir. Buradaki ekolokasyon mekanizması en basit

tanımıyla ses titreşimi ile yer tespit edilmesi işlemidir. Doğal yaşamlarında yarasalar yol ve yiyecek arayışı sırasında yansıyan ses titreşimlerinin yoğunluğuna göre bir yön haritası oluşturur ve uygun yöne doğru yakınsarlar. Bahsi geçen kurala göre tasarlanan yöntemde her bir yarasa hız, konum, frekans, dalga boyu ve ses şiddeti gibi parametrelere sahiptir. Yang, yarasaların ekolokasyon davranışlarını örnek alan yarasa algoritmasını takip eden cümledeki üç temel kurala göre modellemiştir (Yang 2010, Koç 2016). Bu kurallar şunlardır: (1) Yarasalar mesafeyi algılamak için ekolokasyon mekanizmasını kullanırlar ve av ile arka plandaki engeller arasındaki mesafeyi yapısal özellikleriyle kavrayabilirler. (2) Avın aranması için her yarasa 𝑥 pozisyonuna, 𝑣 hızına, sabit 𝑓𝑚𝑖𝑛 frekansına, 𝜆 değişken dalga boyuna ve 𝐴 ses şiddetine sahiptir ve avın

konumuna göre yarasalar rastsal olarak uçarlar. Modellenen algoritmanın yapısına uygun olarak bu canlılar 𝑓 frekansını (dalga boyu) ve 0 ile 1 aralığındaki 𝑟 emisyon oranını hedef bölgenin yakınlığına göre otomatik olarak ayarlarlar. (3) Ses şiddeti parametresinin farklı şekillerde değişmesine rağmen önerilen algoritmada bu parametrenin değerlerinin en yüksek ses şiddeti (𝐴0) ile sabit en düşük ses şiddeti

(𝐴𝑚𝑖𝑛) aralığında değiştiği varsayılır.

Denklem 50’de 𝑡 anındaki bir yarasanın konum değişikliği gösterilmiştir. Burada 𝑡 değişkeni mevcut anda ulaşılan bilgileri gösterirken; 𝑡 − 1, bir önceki andaki konum ve hız bilgilerini tutar. Denklem 48’e ve Denklem 49’a göre sırasıyla; yarasanın frekans ve hız değerleri hesaplanır. 𝜒 değeri rastgele üretilen frekans katsayısını temsil eder. Başlangıçta, tüm yarasalar için rastsal olarak [𝑓𝑚𝑖𝑛, 𝑓𝑚𝑎𝑥] aralığında frekans değerleri üretilir. 𝑥𝑔, tüm yarasalar arasındaki aday çözümlerin karşılaştırılması ile belirlenen o anki en iyi global aday çözümü (global-best-bat) ifade eder. Bu denklemlere göre frekansların yarasaların hızlarını ve hızların da yeni konumları etkilediği anlaşılır.

𝑓𝑖 = 𝑓𝑚𝑖𝑛 + (𝑓𝑚𝑎𝑥 − 𝑓𝑚𝑖𝑛)𝜒 (48) 𝑣𝑖𝑡 = 𝑣

𝑖𝑡−1+ (𝑥𝑖𝑡− 𝑥𝑔)𝑓𝑖 (49)

𝑥𝑖𝑡= 𝑥

𝑖𝑡−1 + 𝑣𝑖𝑡 (50)

Modül tespiti problemine adapte edilen standart yarasa algoritmasının yukarıda verilen parametreleri bu probleme uygun şekilde ayarlanmıştır. Ayrıca, orijinalinde sürekli problemlerin yapısına uygun olan bu algoritma, tez çalışmasında ayrık hale dönüştürülmüş ve BA ile temsil edilmiştir. Bu algoritmanın probleme uyarlanmış sözde- kodu (pseudo-code) Çizelge 3.7’de sunulmuştur. Bu çizelgeye göre başlangıçta tüm yarasalar için (𝑖 = 1 … 𝑛) BA’nın başlangıç parametreleri tanımlanır. Burada gösterilen 𝑖 değişkeni yarasaların temsili sıra numaralarını; 𝑛 ise popülasyondaki toplam yarasa sayısını ifade eder. Çizelge 3.7’deki ikinci işlem satırında tanımlanan 𝑑 değişkeni problem boyutunu tutar ve bu boyut giriş ağındaki toplam düğüm sayısına karşılık gelir. Böylece toplam 𝑑 düğümlü (boyutlu) 𝑛 adet yarasa popülasyonu oluşturur. Uygunluk fonksiyonu olarak da modülerlik amaç fonksiyonu (𝐹𝑀) tanımlanmıştır. Tüm bunlara ek olarak algoritmadaki parametrelerin değerleri; 𝑓𝑚𝑎𝑥 = 1, 𝑓𝑚𝑖𝑛 = 0, 𝑟 = 0.5, 𝐴 = 0.5 ve 𝜆 = 0.9 olarak belirlenmiştir.

Çizelge 3.7. Ayrık yarasa algoritmasının sözde-kodu

1. 𝑥𝑖 ve 𝑣𝑖 değerlerine sahip ve komşuluk listesi ile uyumlu başlangıç popülasyonunu üret 2. Modülerlik amaç fonksiyonunu tüm yarasalar için tanımla —𝐹(𝑥𝑖), x→(𝑥1, … , 𝑥𝑑) 3. Frekansı belirle→ 𝑓𝑖∈ [𝑓𝑚𝑖𝑛, 𝑓𝑚𝑎𝑥], artış oranı―𝑟𝑖 ile ses şiddetini―𝐴𝑖 tanımla 4. Ağ yapısına ve probleme özgü diğer tanımlamaları yap ve 𝑡 sayacına 1 sayısını ata

5. Döngüyü başlat (𝑡 < 𝑚𝑎𝑘𝑠𝑖𝑚𝑢𝑚 𝑖𝑡𝑒𝑟𝑎𝑠𝑦𝑜𝑛 𝑠𝑎𝑦𝚤𝑠𝚤)

6. Frekansı ayarlayarak yeni çözümler üret

7. Yarasa hızlarını ve çözümlerini/konumlarını 48., 49. ve 50. denklemlere göre güncelle 8. Şekil 3.11’deki 10. süreç adımına göre sürekli değerleri ayrıklaştır (1)

9. ‘Şart-1’ 〈𝑟𝑎𝑠𝑡𝑔𝑒𝑙𝑒 ü𝑟𝑒𝑡𝑖𝑙𝑒𝑛 𝑠𝑎𝑦𝚤, 𝑒𝑚𝑖𝑠𝑦𝑜𝑛 𝑜𝑟𝑎𝑛𝚤𝑛𝑑𝑎𝑛 𝑦ü𝑘𝑠𝑒𝑘𝑠𝑒―𝑟𝑎𝑛𝑑(0,1) > 𝑟𝑖

10. En iyi aday çözümler içerisinden bir aday seç ve bunun çevresinde lokal arama yap 11. ‘Şart-1’ sonu

12. Rastgele uçuşla yeni bir aday çözüm üret

13. Şekil 3.11’deki 10. süreç adımına göre yeni üretilen sürekli değerleri ayrıklaştır (2) 14. ‘Şart-2’ 〈𝑟𝑎𝑛𝑑(0,1) < 𝐴𝑖 𝑣𝑒 𝑓(𝑥𝑖) < 𝑓(𝑥𝑔)〉

15. Yeni aday çözümleri kabul et (eğer daha büyük modülerlik değerine sahipse) 16. ri değerini arttır ve 𝐴𝑖 değerini azalt

17. ‘Şart-2’ sonu

18. Yarasaları modülerlik değerlerine göre sırala ve en başarılı aday çözümü bul 19. t sayacını bir arttır: 𝑡 = 𝑡 + 1

20. Döngüyü sonlandır ve en uygun sonucu veren yarasaya göre ağ modüllerini oluştur

Başlangıçta rastsal olarak üretilen her bir yarasa komşuluk listesine/matrisine uygun olarak bir çözüm dizisini temsil eder. Bu dizinin uzunluğu maksimum düğüm sayısı kadardır ve 1’den başlayarak her bir yarasa için rastgele bir şekilde uygun komşular seçilir. Bu şekilde oluşturulan aday çözümlerin Denklem 17’ye göre uygunluk değerleri (𝐹𝑀) hesaplanır. Bu değerlere göre yarasaların hızları ve konumları güncellenerek en uygun modül yapılarının ortaya çıkarılmasına çalışılır. Komşuluk matrisine göre yeni yarasaların (bireylerin) üretilebilmesi için sınır kontrolü yapan ve kesirli değerleri doğal sayılara yuvarlayan ek bir fonksiyon tanımlanmıştır.

Belli kısıtlara göre rastgele birey üretim işlemi 𝑚𝑒𝑘𝑎𝑛𝑖𝑧𝑚𝑎 − 1’i ifade eder ve Çizelge 3.7’deki 1. ve 12. adımlarda uygulanır. Bölüm 2.1.1’de verilen Şekil 2.3-a’daki 8 düğümden oluşan bir çizge için örnek bir birey üretim ve ayrıklaştırma işlemi Şekil 3.12’de gösterilmiştir.

Şekil 3.12’de üretilen birey BA algoritmasında aday çözümü ifade eden bir yarasayı temsil eder. Bu aday çözüm Şekil 3.4’deki sekiz düğümlü örnek çizgeye göre oluşturulmuştur. Tez çalışmasında ayrık çözümler üreten algoritmalar rastgele birey üretim işlemi sırasında bir dönüşüm/ayrıklaştırma işlemine ihtiyaç duymadan doğrudan ağdaki düğümlerin komşuluk ilişkilerine göre aday çözümler üretirler. Şekil 3.12’deki örnekte her bir birey 8 boyutludur. Düğümler kendi sıra numaralarına göre bağlı oldukları komşu düğümlerden rastsal olarak bir aday düğüm seçerler. Böylece birbirlerine bağlı düğümler topluluğu elde edilmiş olur. Daha sonra üretilen bireydeki düğümlerin oluşturdukları ağ modüllerine göre 𝐹𝑀 fonksiyonu değeri elde edilmiş olur. Her bir modül birbirleriyle yoğun ilişkili fakat diğer modüllerdeki düğümlerle daha az ilişkide olan düğümlere sahip olur. Bu şekilde modüller arası ilişkiler minimize edilip; modüller içerisindeki etkileşimler maksimize edilmektedir. Tüm popülasyon belirtilen biçimde oluşturulduktan sonra en yüksek modülerlik skorunu sunan aday çözüm global en iyi birey olarak kaydedilir. BA algoritmasında ayrık yapıdaki algoritmalardan farklı olarak her yarasanın frekans ve hız değerlerine göre üretilen yeni konumlar (dönüşüm

öncesi aday çözüm) sürekli değerlere sahip olurlar. Bu değerler ilgili düğümlerin

komşuluk listelerine uygun olarak doğal sayılara (komşu düğüm sıra numaralarına) yuvarlanırlar. Üretilen sayının ondalık kısmı ―0.5― değerinden küçük ise yuvarlama işlemi bir alt doğal sayıya; değilse bir üst doğal sayıya doğru yapılır. Şekil 3.12’de örnek olarak üretilen bireyde 1. düğüm için 2.57 yeni konum değeri üretilmiş olsun. Bu değer bir üst doğal sayı olan 3 sayısına yuvarlanır. Bölüm 2.1.1’de verilen Şekil 2.3- a’daki çizge incelendiğinde, 1. düğümün komşu düğümleri 3., 4., 5. ve 6. düğümlerdir. Buna göre ilk düğümün komşu düğümü olarak 3. düğümün seçilebileceği anlaşılır. Böylece 1. düğümün 3. düğüm ile bağlantısı olduğu varsayılır ve bu düğümler aynı modüle dahil edilir. 2. düğüm için üretilen 6.01 değeri 6 sayısına yuvarlanır ve 6. düğüm komşu düğüm olarak seçilir. Aynı şekilde 3. düğüm için 1.248 değeri 1 sayısına yuvarlanır ve 1. düğüm komşu düğüm olarak seçilir. Bu şekilde tüm düğümlerin üretilen değerleri yuvarlanır ve uygun komşular atanmış olur. Anlatılan ayrıklaştırma işlemini BA dışında GSA algoritması da uygulamaktadır. EPSO algoritması ise ayrıklaştırma işlemi için farklı transfer fonksiyonlarını kullanır. BA, GSA ve EPSO haricinde kalan diğer beş algoritma ayrıklaştırma işlemine gerek duymaz. Bu algoritmalar her bir düğüm için kendi komşu düğümleri içinden doğrudan seçim yapar.