• Sonuç bulunamadı

3.2. Metot 26

3.2.2. Genetik Algoritma Uygulaması 30

Genetik Algoritmalar, doğadaki canlıların geçirdiği süreci örnek alarak iyi nesillerin kendi yaşamlarını muhafaza edip kötü nesillerin elimine edilmesi prensibine dayanmaktadır. Matematiksel modellemenin yapılamadığı veya optimum çözümlerin olmadığı problemlerde genetik algoritmalardan yararlanılır. Bu algoritma, bir önceki nesilden doğan yeni bireylerin şartlara uyum sağlayıp yaşamlarını devam ettirmeleri ilkesine dayanır. Genetik algoritma, uygunluk (fitness function) değerleri ile doğadaki en iyinin yaşamasını gerektirmektedir. Bunu belirlemek içinde üreme, çaprazlama ve mutasyon gibi operatörleri kullanmaktadır. Bundan dolayıdır ki; genetik algoritmanın önemli özelliklerinden bir tanesi de bir grup üzerinden çözüm araması ve bu şekilde çok sayıdaki çözümlerin içinden en iyi çözümü seçebilmesi olarak ifade edilebilir.

Şekil 3.3’te rastsal olarak üretilen 324 adet problem verilerinin, genetik algoritmalara göre bilgisayar yazılımında çözümlerinin ana menüsü görülmektedir. Ana menüde her probleme ait rastsal olarak üretilen sabit geliş ve teslim zamanları ile her işe ait iş ağırlıkları bulunmaktadır. Her problem 100 nesil ve 5 tekrar ile çözülmüştür. Ana menünün nesildeki en iyi çözümler bölümünde, her tekrarın 100 nesli içindeki en iyi amaç fonksiyonu (Zmax), atanan iş sayıları, maksimum

tamamlanma zamanı (Cmax) ve işlem süreleri (CPU time) görülmektedir. Ortalamalar

bölümünde 5 tekrara ait ortalama atanan iş sayısı ve ortalama tamamlanma zamanı (Cmax) bilgileri yer almaktadır. En iyi çözüm bölümünde ise, genetik algoritma

çözümleri içinde her probleme ait en iyi çözüm görülmektedir. Burada (Cmax)

maksimum tamamlanma zamanı, atanan iş sayısı, amaç fonksiyonu (Zmax), işlem

süresi ve bu sonuçların hangi tekrarda bulunduğu görülmektedir. Bilgisayar yazılımında 324 probleme ait genetik algoritma ve Bouzina ve Emmons çözüm raporlarına programın diğer menüsünden ulaşılabilmektedir.

Şekil5.4 Operasyonel sabit iş çizelgeleme problemlerinin genetik algoritmalar ile çözümü için yapılan bilgisayar yazılımının algoritmasını göstermektedir. Yazılım öncelikle kullanıcı tarafından girilen sayı kadar rastsal olarak başlangıç populasyonunu oluşturmakta ve amaç fonksiyonunu (Zmax) hesaplamaktadır. Üçüncü

adımda, üreme işlemi gerçekleşmekte ve oluşan yeni neslin amaç fonksiyonu (Zmax)

tekrar hesaplanmaktadır. Dördüncü adımda, yine kullanıcı tarafından değiştirilme imkânı verilen çaprazlama oranına göre çaprazlama işlemi gerçekleşmekte ve oluşan yeni neslin amaç fonksiyonu (Zmax) tekrar hesaplanmaktadır. Beşinci adımda, yine

kullanıcı tarafından değiştirilme izni verilen mutasyon oranına göre mutasyon işlemi gerçekleşmekte ve mutasyon işlemi sonucunda oluşan yeni neslin amaç fonksiyonu (Zmax) tekrar hesaplanmaktadır. Bu adımlar problem nesil ve tekrar sayısına ulaşana

kadar devam etmektedir. Her adımda oluşan nesillerin amaç fonksiyon (Zmax)

değerleri bilgisayarda saklı tutulmaktadır. Nesil ve tekrar sayıları içinden en iyi çözümler, raporlar bölümünde görülebilmektedir.

Başla Başlangıç Populasyonunu Oluştur Uygunluk Değerini Hesapla Üreme İşlemini Gerçekleştir Çaprazlama İşlemini Gerçekleştir Mutasyon İşlemini Uygula En İyi Çözümü Al

Nesil Sayısı İstenen Sayıya Ulaştı mı?

Nesil İçindeki En İyi Çözümü Al

Tekrar Sayısı İstenen Sayıya Ulaştı mı? Tekrar Sayısı İçinden En İyi Çözümü Al Hayır Hayır Evet Dur Tekrar=Tekrar+1 Nesil=Nesil+1 Evet

Uygulamada, iş çizelgeleme problemleri için temel kodlama (her bir genin bir işi temsil ettiği) kullanılmıştır. Kromozom dizisi üzerinde her bir rakam bir işi temsil etmektedir (Cleveland ve Smith, 1989). Algoritmanın bu ilk adımına populasyon sayısını seçerek başlanır ve bu seçimden sonra rastsal olarak başlangıç populasyonu kadar kromozom seçilir.

Başlangıç populasyonu alt sınırı 5 üst sınırı 100 olacak şekilde programlanmıştır. Uygulamada, başlangıç populasyonu 10 seçilmiştir.

Kromozomların ne kadar iyi olduğunu bulan fonksiyona uygunluk fonksiyonu denir. Bu fonksiyon genetik algoritmanın beynini oluşturmaktadır. Uygunluk fonksiyonu, parametrelere göre hesaplama yaparak kromozomların uygunluğunu bulur. Bu kısım uygulamada Genetik Algoritmamızın 2. adımını oluşturmaktadır. Çoğu zaman genetik algoritmanın başarısı bu fonksiyonun verimli ve hassas olmasına bağlı olmaktadır.

2. Adımda başlangıç populasyonundaki her bir dizinin (kromozom) Uygunluk (fitness function) değeri hesaplanmıştır. Her bir işin wj ile ağırlıklandırılması ve

maksimum sayıda işin prosese tabi tutulması amaçlı olan operasyonel sabit iş çizelgeleme problemlerinde amaç fonksiyonu; işleme tabi tutulan her bir işin toplam ağırlıkları ve atanan iş sayıları amaçlarına kullanıcı tarafından değiştirme yetkisi bulunan oranlar verilmiştir. Uygulamada bu iki oran %50 - %50 olarak alınmıştır. Genetik algoritmada kullanılan her operatörden sonra her bir kromozom için makinelere atanan iş sayıları, toplam iş ağırlıkları, maksimum tamamlanma zamanları (Cmax), amaç fonksiyonları (Zmax) ve işlem süreleri (CPU time)

bulunmuştur. Amaç fonksiyonu (Zmax) ise; atanan iş sayıları ve toplam ağırlıkların

programda verilen oranlar ile çarpımından elde edilen toplam değer olarak alınmıştır. Kromozomlarda üreme işleminin gerçekleştirilmesi kromozomların uygunluk fonksiyonu değerlerine göre yapılır. Bu seçimi yapmak için rulet çemberi yöntemi, turnuva seçimi gibi yöntemler kullanılır. Bu çalışmada kullanılan rulet çemberi yöntemi aşağıda açıklanmıştır.

1. Tüm bireylerin uygunluk değerleri bir tabloya yazılır, 2. Bu değerler toplanır,

3. Tüm bireylerin uygunluk değerleri toplama bölünerek [0,1] aralığında sayılar elde edilir. Bu sayılar bireylerin seçilme olasılıklarıdır. Sayıların hepsi bir tabloda tutulur.

Rastsal olarak üretilen sayılar yukarıda elde edilen [0,1] aralığına denk gelen kromozomlar tekrar seçilerek üreme işlemi gerçekleştirilir.

3. Adımda Üreme yöntemi olarak, Rulet çemberi yöntemi kullanılmıştır. Başlangıç populasyonunda oluşturulan her bir kromozomun uygunluk değerlerine göre seçim olasılığı hesaplanmıştır. Bu oranlara göre program tarafından üniform dağılıma göre oluşturulan rastsal sayılarla yeni nesil kromozomları bulunmuştur. Bu yeni nesil kromozomlarının yeni uygunluk değerleri Adım 2’deki gibi yeniden hesaplanmıştır.

4. Adımda Çaprazlama yöntemi kullanılmıştır. Uygulamada literatüre uygun olarak çaprazlama oranı %80 olarak alınmıştır.

5. Adımda kullanılan mutasyon oranı ise literatüre uygun olarak, %20 değeri seçilmiştir.

Uygulamada Nesil sayısı 100, tekrar sayısı 5 defa olarak alınmış yani, beşinci adıma kadar yapılan tüm işlemler bir nesil olmak üzere her problem için 100 Nesil, 5 tekrarlı olarak çözülmüştür. Bu çözümler neticesinde elde edilen en yüksek uygunluk değeri (Zmax) ve makinelere atanan iş sayısı değerleri hesaplanmıştır.

Benzer Belgeler