• Sonuç bulunamadı

Uygulamanın Genetik Algoritmayla Çözümü İçin Algoritmanın Belirlenmesi

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.