• Sonuç bulunamadı

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

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

3.4.7. Dağınık Arama Temelli Algoritma

Bu bölümde açıklanan ve SSA (Scatter Search based Algorithm) olarak ifade edilen Dağınık Arama Temelli Algoritma, 𝑃 adet üyeli popülasyondan (DiverseSet) belli sayıdaki en iyi kromozomun (referans kümesi, ReferenceSet) dağınık arama (Glover 1977, Marti ve ark 2006) temelli bir yöntemle geliştirilmesini kapsar. Bu algoritmanın başlangıç aşamasında, birey üretimi 𝑚𝑒𝑘𝑎𝑛𝑖𝑧𝑚𝑎 − 1 diye isimlendirilen bir yaklaşımla gerçekleştirilir. SSA ile referans kümesinden rastsal olarak seçilen bireylerin (alt-kümeler) problemin yapısına uygun olarak önerilen GA’daki (Goldberg ve Holland 1988, Holland 1992) çaprazlama ve mutasyon işlemlerine alınması, birey geliştirme aşamasını oluşturur.

SSA’nın genel çalışma prensibi en iyi bireylerin diğer bireylere oranla daha fazla

geliştirilmesine dayanır. Bu algoritmanın uygulanan işlem adımlarını içeren sözde-kod Çizelge 3.11’de gösterilmiştir. Bu çizelge, Şekil 3.11’deki genel işlem adımlarına uygun olarak hazırlanmıştır. Buna göre önerilen algoritmanın ilk aşaması 𝑚𝑒𝑘𝑎𝑛𝑖𝑧𝑚𝑎 − 1

4 6 8 1 1 8 2 3

3

3 6 8 6 1 4 2 3

Yeni kromozom (4. birey) → Seçilen kromozom (3. birey) →

kullanılarak ana popülasyonun oluşturulmasıdır. Şekil 3.16’da temsili olarak oluşturulan bir birey yapısı incelenebilir.

Çizelge 3.11. SSA’ya göre işlem adımlarını gösteren sözde-kod

1. Ağ topluluk tespiti problemine ve algoritmaya özgü parametreleri tanımla

2. Ana popülasyonunu (𝐷𝑖𝑣𝑒𝑟𝑠𝑒𝑆𝑒𝑡) “𝑚𝑒𝑘𝑎𝑛𝑖𝑧𝑚𝑎 − 1” göre üret

3. Bireylerin modülerlik skorlarını hesapla → 𝐹𝑀𝑖

4. Bireyleri uygunluklarına göre iyiden kötüye doğru sırala (1) 5. 𝑥 sayacına 1 sayısını ata (𝑥 = 1)

6. Döngüyü başlat (𝑥 < 𝑥𝑚𝑎𝑥)

7. 𝒯 adet bireye sahip referans kümesini (𝑅𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒𝑆𝑒𝑡) oluştur 8. Referans kümesinden rastsal olarak alt kümeleri (𝑠𝑢𝑏𝑆𝑒𝑡𝑠) oluştur 9. Alt kümelere Bölüm 3.4.6’daki çaprazlama operatörünü uygula 10. Çaprazlama sonrası bireyleri, referans kümesinde birleştir

11. Referans kümesindeki bireyleri “𝑚 − 𝑚𝑒𝑘𝑎𝑛𝑖𝑧𝑚𝑎” ile mutasyona uğrat

12. Referans kümesi dışındaki 𝐾 adet bireyi al → (𝑒𝑘𝑃𝑜𝑝)

13. 𝑒𝑘𝑃𝑜𝑝’taki bireylere Bölüm 3.4.6’daki mutasyon operatörünü uygula

14. Ana popülasyonu güncelle → 𝐷𝑖𝑣𝑒𝑟𝑠𝑒𝑆𝑒𝑡 = 𝑅𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒𝑆𝑒𝑡 + 𝑒𝑘𝑃𝑜𝑝

15. Bireyleri uygunluklarına göre iyiden kötüye doğru sırala (2) 16. En iyi lokal ve global bireyleri seç

17. 𝑥 = 𝑥 + 1

18. (𝑥 == 𝑥𝑚𝑎𝑥) şartı sağlanırsa döngüyü sonlandır 19. Global en iyi bireye göre ağ modüllerini oluştur

Çizelge 3.11’e göre ana popülasyondaki tüm birey sayısı 𝑃 ile gösterilsin. 𝒯 ise referans kümesindeki toplam birey sayısıdır. Ana popülasyon üretildikten sonra bu popülasyondan alınan (𝒯 = 𝜌 × 𝑃 ) adet birey referans kümesini oluşturur. Burada 𝜌, referans kümesine seçilecek en iyi bireylerin seçim oranını gösterir ve tez çalışmasında bu oran 0.4 olarak alınmıştır. Bu işlem için ana popülasyondaki tüm bireyler modülerlik skorlarına göre yüksekten düşüğe doğru sıralanır ve en iyi 𝒯 tanesi seçilir.

Sonraki işlem adımında, referans kümesinden rastsal olarak seçilen bireylerle [𝑛 × 𝒯] adet alt-küme oluşturulur. 𝑛, alt-kümelerin üretim oranını gösterir ve tez çalışmasında, bu parametrenin değeri 0.3 olarak belirlenmiştir. Örneğin, toplam birey sayısı 𝑃 = 30 seçilirse; referans kümesindeki birey sayısı [𝒯 = 0.4 × 30 = 12]; alt- küme sayısı ve bu alt-kümelerdeki birey sayıları sırasıyla; [0.3 × 12 = 4] ve [12 4⁄ = 3] olur. Buradaki kesirli ifadeler bir üst doğal sayıya yuvarlanmıştır. Ayrıca, bireylerin geliştirilmesi için aşağıdaki mutasyon ve çaprazlama işlemleri uygulanmıştır.

Alt-kümelerdeki her bir bireyin geliştirilmesi için öncelikle Bölüm 3.4.6’daki çaprazlama operatörü SSA algoritması için de uygulanır. Burada sadece AGA’dan farklı olarak seçilen 2. birey kendi alt-kümesinden rastsal olarak seçilir. Örnek çaprazlama

operatörü Şekil 3.17’de gösterilmiştir. Bu operatör referans kümesindeki tüm alt- kümelerin bireyleri için uygulanır. Çaprazlama işlemi için her alt-kümedeki bireyler kendi alt-kümelerindeki bireylerle çaprazlanırlar. Burada 1. birey, alt kümedeki sırasına göre seçilen ilk bireyi; 2. birey, çaprazlama işlemi için yine kendi alt kümesinden rastsal olarak seçilen ikinci bireyi temsil eder. Bu işlem sonrası mutasyon operatörüne geçilir.

Yukarıdaki çaprazlama işlemi tamamlandıktan sonra tüm alt-kümeler yeni referans kümesini oluşturur ve mutasyon işlemine geçilir. SSA’nın önerilen mutasyon işlemi diğer algoritmaların sahip olduğu mutasyon işlemlerinden farklıdır. Bu işlem “𝑚 − 𝑚𝑒𝑘𝑎𝑛𝑖𝑧𝑚𝑎” olarak isimlendirilmiştir. Referans kümesindeki her bir birey modülerlik değerlerine göre yüksekten düşüğe doğru sıralanır ve Denklem 89’da gösterildiği gibi bunlara sırasıyla 1’den 𝒯’ye kadar indeksler atanır. Bu indekslere göre Denklem 90’daki hesaplama ile her bir bireyin mutasyon işlemine alınacak düğüm sayısı belirlenir. Denklem 89’da her bir bireyin indeksi (sırası) ve sahip olduğu modülerlik skoru gösterilmiştir. Burada 𝑖, referans kümesindeki bireyleri gösterirken; 𝑑𝑖, 𝑖. bireyin indeksini; 𝒯, bu kümedeki toplam birey sayısını; 𝐹𝑖, 𝑖. bireyin uygunluk değerini; 𝐹1, en yüksek skoru ve 𝐹𝒯 ise en düşük skoru temsil eder.

〈𝑖𝑛𝑑𝑒𝑘𝑠𝑙𝑒𝑟 → 𝑑𝑖〉 ∶ 1, 2, … , 𝒯

〈𝑠𝑘𝑜𝑟𝑙𝑎𝑟〉 ∶ 𝐹1, 𝐹2, … , 𝐹𝒯 , 𝐹𝑖 > 𝐹𝑖+1, ∀𝑖 ∈ 𝑅𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒𝑆𝑒𝑡 (89)

Denklem 90’da ise 𝑖. birey için mutasyon ile değiştirilecek düğüm (gen) sayısı gösterilir. Burada 𝑁, bireyi oluşturan toplam düğüm sayısını; 𝑀, mutasyon oranını; 𝑟𝑖1,

𝑖. birey için 0 ve 1 arasında üretilen rastsal seçim oranını; 𝑟2, [0,1] aralığındaki rastsal

mutasyon miktarı oranını ve 𝑑𝒯 ise en kötü skora sahip bireyin indeksini gösterir.

Sonucu tutan 𝑚𝑖, 𝑖. bireydeki mutasyona uğrayacak düğüm sayısını ifade eder. Burada elde edilen ondalık sayılar bir üst doğal sayıya yuvarlanır. Bir bireyin mutasyona uğratılması sırasında temel gen yapısının korunması amacıyla bireyde maksimum değiştirilecek düğüm sayısı, (𝑟2× (𝑁 ÷ 4)) oranıyla kısıtlanmıştır.

𝑚𝑖 = 𝑟2× (

𝑑𝑖× (𝑁 ÷ 4)

𝑑𝒯 ) , 𝑒ğ𝑒𝑟 (𝑟𝑖1 < 𝑀) 𝑖𝑠𝑒 (90)

Denklem 90’a göre referans kümesinde mutasyon işlemine alınacak bireyler (𝑟𝑖1 < 𝑀) şartına göre seçilir. Bu işlemde, her bir birey için rastsal olarak 0 ve 1

arasında bir sayı (𝑟𝑖1) üretilir. Bu sayı sabit olarak belirlenmiş mutasyon oranından (𝑀)

küçükse 𝑖. birey için mutasyon işlemi gerçekleşir; aksi durumda sonraki bireye geçilir. Burada şart sağlandığında, bu bireyin Denklem 89’daki sırası dikkate alınarak Denklem 90’a göre mutasyona uğrayacak gen sayısı belirlenir. Daha sonra bu sayı kadar rastsal olarak konumlar seçilir ve mutasyonlar gerçekleşir. Böylece tüm bireyler için mutasyon şartına göre işlem yapılarak sonraki adıma geçilir.

Bir sonraki işlemde referans kümesine seçilmeyen [𝐾 = (1 − 𝜌) × 𝑃] adet birey grubu (𝑒𝑘𝑃𝑜𝑝) için çaprazlama işlemi yapılmadan doğrudan AGA algoritmasının Bölüm 3.4.6’da anlatılan mutasyon işlemi uygulanır. Burada çaprazlama işleminin yapılmamasının temel sebebi bu bireylerin uygun olmayan modülerlik değerlerine sahip olmalarından dolayı birbirleriyle bilgi alışverişinin gelişimi sağlayamamasıdır. Bunun yerine doğrudan çoklu mutasyon operatörü ile işlem yapılır. Böylece 𝑃 = 30 için 𝒯 = 12 adet birey, referans kümesi ile geliştirilirken; kalan 𝐾 = 18 bireyin uygunlukları buradaki mutasyon ile iyileştirilmeye çalışılır.

Yukarıdaki işlemler sonunda en başarılı çözümleri sunan (𝑅𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒𝑆𝑒𝑡) ve en başarısız sonuçları veren (𝑒𝑘𝑃𝑜𝑝) iki grup tekrardan ana popülasyonda (𝐷𝑖𝑣𝑒𝑟𝑠𝑒𝑆𝑒𝑡) birleştirilir. Popülasyondaki bireyler uygunluklarına göre sıralandıktan sonra tekrardan referans kümesine en iyi 𝒯 adet birey seçilir ve bu işlemler döngüsel olarak devam eder. Çizelge 3.11’in 6. ve 18. adımındaki 𝑥𝑚𝑎𝑥, sonlandırma kriteri olan maksimum nesil sayısını gösterir. Burada 𝑥 sayacı 𝑥𝑚𝑎𝑥’a ulaştığında (𝑥 == 𝑥𝑚𝑎𝑥) döngü sonlandırılır.