6. UYGULAMA
6.4 Uygulamanın Genetik Algoritmayla Çözümü İçin Algoritmanın Belirlenmesi
Bölüm 6.3’de anlatılan çözüm süreci ilk olarak GA’ya uyarlanmıştır. GA’da %5’lik oranda elitizm uygulanmıştır. Çeşitliliğin sağlanabilmesi için çaprazlama olasılığı %70, mutasyon
oranı ise %10, birey sayısı 1250 olarak alınmıştır. Bu oranlar belirlenirken birçok deneme ve
analiz yapılmıştır. Parametre analizlerinin ayrıntılı açıklaması 7. Bölüm kapsamında
verilmiştir. Önerilen modelin GA için Visual Studio C#’da geliştirilen programının genel akış şeması Şekil 6.1’de gösterilmiştir.
6.4.1 Çözümün kodlanması
Bu çalışmada çözümün temsili için, Min et al. (2006) ‘da kullanılan kromozom yapısının bir
benzerinden faydalanılmıştır. Kromozom toplam 65 genden oluşmaktadır. Örnek bir
kromozom Şekil 6.2’de verilmiştir. Her İTM için kullanılan 4 genden ilki, o toplama
noktasının açık (1) veya kapalı (0) olmasını ifade etmektedir. Diğer üç adet gen ise toplama
periyodu uzunluğunu (gün olarak ikilik sistemde) ifade eder. Örneğin ilk İTM için periyot 2
gün, ikinci ve onbeşinci İTM açılmadığından dolayı 0 gün ve ondördüncü İTM için 6 gündür.
Kromozomun son 5 geni ise MTM’ler için ayrılmıştır. Açık olan MTM için 1, kapalı için 0
kullanılır.
İTM1 İTM2 ... İTM14 İTM15 MTM1 … MTM5
1 0 1 0 0 0 0 0 ... 1 1 1 0 0 0 0 0 0 … 1
6.4.2 Yeni birey ve ilk neslin oluşturulması
GA’da yeni birey oluşturma süreci Şekil 6.3’te gösterilmiştir. Şekil 6.3’te görülen
“kromozomu standart forma getirme” şu şekilde gerçekleştirilmektedir: 0 ve 1’lerden oluşan
65 genli bir rasgele dizi üretilmektedir. n = 0’dan başlayarak “4xn”. gen eğer “1”se n+1, n+2,
n+3. genlere dokunulmamaktadır. “4xn”.gen eğer “0”sa, stokta bekletmeyi ifade eden n+1,
n+2, n+3. genler de sıfıra eşitlenmektedir, çünkü kiralanmamış bir İTM’de stokta bekletme
söz konusu olmamaktadır. Burada n=0,1,…,14’tür.
Şekil 6.3’te görülen fizibil olup olmama durumu kontrolü ise şu şekilde açıklanabilir: İlk 60
gen ve son 5 gen ayrı ayrı incelenir ve içlerinde en az bir adet “1” içerip içermedikleri kontrol edilir. Eğer iki kısımdan herhangi biri ya da her ikisi de hiç “1” içermiyorsa kromozom fizibil
değildir, çünkü hiç İTM ve/veya MTM açılmamıştır. Bu durumda tekrar kromozom üretme
yoluna gidilir. Bu şekilde, en az bir İTM ve MTM açılması sağlanmıştır.
İlk nesilin oluşturulması, yeni birey oluşturması işleminin topluluk büyüklüğü kadar
tekrarlanmasından ibarettir. Tamamlanana kadar sürekli yeni bir birey oluşturulur, bunların
uygunluk değerleri hesaplanır ve kaydedilir.
6.4.3 Klonlama
Mevcut neslin iyi olan %5’lik kısmı olduğu gibi gelecek nesile aktarılmaktadır. Bu işlem
elitizm olarak da adlandırılabilmektedir. Elitizm sayesinde çeşitlilik artmamaktadır, fakat
uygunluk değeri yüksek olan bireylerin kaybedilmesinin de önüne geçilmektedir.
6.4.4 Ebeveyn seçimi
Programlamada ebeveyn seçimi üç metotla ayrı ayrı denenmiş ve en sağlıklı sonuç veren
yöntem varsayılan olarak kabul edilmiştir.
İlk olarak denenen uygunluk oranına göre seçim metodunda, popülasyon büyüklüğü fazla
olduğu zaman bireylere düşen dilimlerin oranı gittikçe küçülmektedir. Daha açık bir ifade ile
topluluktaki birey sayısı ne kadar artarsa, seçim işlemi de rastgele seçime kaymakta, üstelik
Şekil 6.1 GA algoritması akış diyagramı Verileri oku İlk nesli oluştur Bitirme koşulu sağlandı mı? Çıktıları görüntüle Bitir
Klonlama oranı kadar klonla
Pop.<Pop. büyüklüğü Yeni popülasyonu mevcutla değiştir Pc>Çaprazlama olasılığı Pm>Mutasyon olasılığı Başla
Rasgele iki birey seç
Seçilen iki bireyi çaprazla
Yeni bireyleri yeni popülasyona ekle
Pop.=Pop.+2 Rasgele bir birey seç
Mutasyon uygula
Yeni bireyi yeni popülasyona ekle Pop.=Pop.+1 H E H E E E H
Şekil 6.3 Yeni birey oluşturma algoritması akış diyagramı
İkinci olarak denenen turnuva metodu ile seçimde ikili ve beşli turnuvalar denenmiş, bunların
da bazı denemelerde yerel çözümlerde takılmalara yol açtığı görülmüştür. Turnuva ile
seçimde rastgele ve birbirinden farklı seçilen bireyler içindeki en iyi birey gelecek nesle aktarılmaktadır. Bu işlem rulet yöntemine göre daha hızlı olmakla beraber, turnuvadaki birey
sayısı artması oranında yerel çözümlere takılmalar olmaktadır. Bunun nedeni, limit durumda yani turnuva tüm topluluğa uygulandığında elitizm yapılıyor olmasıdır.
Son olarak denenen rastgele seçimde, ebeveynler uygunluk değerlerinden bağımsız olarak
rastgele seçilmektedir. Bu taktirde yapılan denemelerde en iyi çözüme daha geç ulaşıldığı
görülmüş fakat yerel çözümlere takılma olmamıştır. Fakat program yeterince hızlı olduğundan
ve en sağlıklı sonucu verdiğinden dolayı, rastgele seçim yöntemi varsayılan seçim yöntemi
Başla
Pop. <Pop.
Büyüklüğü Bitir
Kromozom uzunluğunda rasgele sayı oluştur
Kromozomu standart forma getir
Fizibil mi? Uygunluğu hesapla Bireyi kaydet Pop.=Pop.+1 H H E E
olarak kullanılmıştır.
Rastgele seçimle belirlenen iki ebeveynin, daha önceden belirtilen sorun nedeniyle aynı bireyler olmaması için, iki birey de önce rastgele seçilmekte, daha sonra ikinci birey birinciden farklı değilse farklı olana kadar yeniden seçilmektedir. Daha sonra bu iki bireyin
genleri çaprazlanmak üzere uygun fonksiyona iletilmektedir.
6.4.5 Çaprazlama
Ana-baba genleri mevcut nesilden seçildikten sonra çaprazlama fonksiyonuna iletilmektedir. Bu çalışmada kullanılan çaprazlama fonksiyonunda iki noktadan çaprazlama uygulanmıştır.
Bunun için ilk olarak iki çaprazlama noktası rasgele belirlenmektedir. Belirlenen bu iki nokta aynı olmamalı ve ilki ikincisinden küçük olmalıdır. İki nokta rasgele belirlendikten sonra iki
birey genlerinin bu iki nokta arasında kalanları, bireyler arasında değiştirilerek, iki yeni ve
farklı birey oluşturulmuş olur. Oluşturulan bireyler, bir çeşit temizleme işleminden geçirilerek
standart forma getirilir. Daha sonra her iki yeni bireyin de fizibil olup olmadıkları kontrol edilmektedir. Fizibil değilse iki yeni nokta belirlenip işlem tekrarlanır. Fizibilse yeni
bireylerin uygunluk değerleri hesaplanır ve bireyler yeni nesile kaydedilir. “Fizibil” olup
olmama durumu ve “standart forma getirme” işlemleri Bölüm 6.4.2’de açıklanmıştır.
6.4.6 Mutasyon
Mutasyon algoritması da büyük oranda çaprazlamaya benzemektedir. Birey seçimi benzer mantıkla yapılmakta, daha sonra seçilen birey mutasyon fonksiyona iletilmektedir. Mutasyon fonksiyonunda ilk olarak rastgele bir mutasyon noktası belirlenir ve eğer belirlenen nokta 0
ise 1, 1 ise 0 olarak değiştirilir. Oluşan yeni birey standart forma getirilir, fizibil değilse işlem tekrarlanır. Fizibil çözüm olması durumunda uygunluk değeri hesaplanır ve birey yeni nesile
kaydedilir.
Mutasyon noktasına kadar ve mutasyon noktasından sonrası için mevcut bireyin tüm genleri olduğu gibi yeni bireye aktarılırken, belirlenen mutasyon noktasındaki gen değiştirilir.
Standart forma getirilip fizibil olup olmadığı denetlenir. Eğer fizibilse birey ve uygunluk
değeri kaydedilir. Aksi takdirde işlem tekrarlanır.