• Sonuç bulunamadı

GENELLEŞTİRİLMİŞ KARESEL ÇOKLU SIRT ÇANTASI PROBLEMİ VE ÇÖZÜMÜ İÇİN BİR GENETİK ALGORİTMA

4.2 G_KÇSÇP İçin Bir Genetik Algoritma

4.2.2 Aparat kapasite kullanımlarının sırt çantası kapasitelerinden düşülmesi

Genelleştirilmiş karesel çoklu sırt çantası modelinin çözümü için geliştirilen genetik algoritmada (GAGSS) parçaların hangi aparatı kullandıkları, kalıpların kopya sayıları ve aparatın atanması için gereken hazırlık süresi parametreleri için;

aparat (i) i. parçanın aparatı aparata (r) r. aparatın kopya sayısı

hazirlik(r) r. aparatın hazırlık için kapasiteden harcayacağı miktar

gösterimleri kullanılmıştır. k sırt çantasını, i parçayı gösteren dizin iken, sırt çantalarına bir aparatın atanıp atanmadığı aparat_atama1(k, aparat(i)) değişkeni ile izlenmektedir.

Burada eğer i. parçanın aparatı k. sırt çantasına daha önce atandıysa bu değişken 0 atanmadıysa 1 değerini almaktadır. KÇSÇP için geliştirilen GA’da kapasite kısıtının sağlanmasını garanti etmek amacı ilk nesil kapasite kısıtını sağlayacak şekilde türetilmektedir. İşlemcilerin yapacakları herhangi bir değişikliğe ise sadece bu değişikliğin getireceği ek ağırlık, ilgili sırt çantasının kapasitesinin aşmasına yol açmayacaksa izin verilmiştir. Genelleştirilmiş modelde ise, klasik modelden farklı olarak i. parça bir sırt çantası için seçildiğinde, kullanılan kapasiteye bu parçanın ağırlığı ( agirlik(i) ) yanı sıra eğer bu parçanın aparatı daha önce atanmadıysa bu aparatın hazırlık süresi de eklenmelidir. Bu amaçla; kullanılan kapasiteye agirlik(i) yerine “agirlik(i) + hazirlik(aparat(i))*aparat_atama1( k, aparat(i))” ifadesi eklenmiştir.

Burada eğer i parçasının aparatı k. sırt çantasına daha önce atanmışsa, aparat_atama1( k, aparat(i)) değişkeninin değeri 0 olacağından hazırlık zamanı parçanın ağırlığına eklenmeyecektir. Aksi halde parçanın seçimi ile k. sırt çantasının ağırlık artışı, parçanın ağırlığı ve aparatın hazırlık için harcayacağı kapasite miktarı toplamına eşit olacaktır.

Bu değişikliklerin çaprazlama ve mutasyon işlemcilerine nasıl yansıyacağı izleyen kısımda verilmiştir.

Değişikliklerin çaprazlama işlemcisine yansıması: Çaprazlama işlemcisinde iki kromozom birlikte ele alındığından aparat atamaları 1. kromozom için aparat_atama1(k, aparat(i)) ve 2. kromozom içinde aparat_atama2 (k, aparat(i)) değişkeni ile izlenmiştir.

Değişikliklerin mutasyon_1 işlemcisine yansıması: Mutasyon_1 işlemcisinde, farklı sırt çantalarına atanmış olan parçaların yer değişimleri incelendiğinden burada bir aparatın daha önce bir sırt çantasına atanıp atanmamış olmasının yanı sıra ilgili sırt çantasında bu aparatı kullanan daha kaç parçanın olduğunun bilinmesi de önemlidir.

Çünkü eğer bir sırt çantasında r. aparatı kullanan bir parça varsa ve bu parça sırt

çantasından çıkarılırsa bu durumda parçanın ağırlığıyla beraber r. aparatın hazırlık için kapasiteden kullandığı miktarında sırt çantası toplam ağırlığından düşülmesi gerekecektir. Ancak sırt çantasında kalan parçalar arasında bu aparatı kullanan bir ya da daha fazla parça varsa bu durumda sadece çıkan parçanın ağırlığı düşülmeli, r. aparatın hazırlık miktarı kalmalıdır. Bu işlemcide, algoritmanın genelinden farklı olarak aparat_atama1(k, aparat(i)) değişkeni ilgili aparatın atanıp atanmadığını değil atanma sayısını göstermektedir. Burada, yer değişimlerini incelediğimiz parçalar l ve h, bu parçaların atanmış oldukları sırt çantaları sırasıyla SÇ_l ve SÇ_h, ve kullandıkları aparatlar ise rl ve rh olsun. l ve h parçasının yerleri değiştirildiğinde SÇ_l ve SÇ_h sırt çantalarına rl ve rh aparatlarını kullanan parçaların atama sayılarına göre karşılaşılabilecek 16 durum vardır. Bu durumların tümü Çizelge 4.1’de gösterilmiştir.

Çizelge 4.1’in sol bölümünde SÇ_l ve SÇ_h sırt çantalarına rl ve rh aparatlarını kullanan kaç parçanın atanmış olduğu, sağ bölümünde ise, SÇ_l ve SÇ_h sırt çantalarına eklenmesi ya da çıkarılması gereken aparat kullanım miktarları gösterilmektedir.

Çizelge 4.1’in birinci satırını parçaların karşılıklı sırt çantası değiştirmelerinin aparatların kapasite kullanımlarına etkileri açısından incelenecek olursa, burada, l parçasının bulunduğu SÇ_l sırt çantasında rl aparatını kullanan sadece bir parça olduğu ve rh aparatını kullanan hiçbir parça olmadığı görülmektedir. Yine benzer şekilde SÇ_h sırt çantasında da rh aparatını kullanan sadece bir parça olduğu ve rl aparatını kullanan hiçbir parça olmadığı görülmektedir. Bu durumda bu iki parça sırt çantası değiştirirlerse, SÇ_l sırt çantasında toplam kullanılan kapasiteden rl aparatının hazırlığı için harcanacak kapasite miktarı düşülmeli ve rh aparatının kullandığı kapasite eklenmelidir. SÇ_h sırt çantasında ise benzer şekilde toplam kullanılan kapasiteden rh aparatının hazırlığı için harcanacak kapasite miktarı düşülmeli ve rl aparatının kullandığı kapasite eklenmelidir. Çizelgenin son satırında l parçasının bulunduğu SÇ_l sırt çantasında rl aparatını kullanan iki ya da daha fazla parça olduğu ve rh aparatını kullanan en az bir parça olduğu ve SÇ_h sırt çantasında da yine benzer şekilde rh aparatını kullanan en az iki parça olduğu ve rl aparatını kullanan bir ya da daha fazla parça olduğu görülmektedir. Bu durumda bu iki parça sırt çantası değiştirirlerse, SÇ_l sırt çantasından l parçası çıkarıldıktan sonra da rl aparatını kullanan parçalar

kalacağından bu aparatın kapasiteden kullandığı miktarın düşülmesine gerek yoktur yine rl aparatını kullanan parçalar daha önce atanmış olduğundan bu miktarın SÇ_h sırt çantasına eklenmesi de gerekmeyecektir. Sonuç olarak bu yer değişikliği aparatların kullandıkları kapasite miktarları açısından bir değişiklik doğurmayacaktır.

Çizelge 4.1: l ve h Parçalarının Yer Değişiminin Aparatlarının Kapasite Kullanımlarına Etkisi

SÇ_l SÇ_h SÇ_l SÇ_h

rl rh rl rh

1 0 0 1 -hazirlik(rl) +hazirlik(rh) +hazirlik(rl) -hazirlik(rh) 1 0 0 2+ -hazirlik(rl) +hazirlik(rh) +hazirlik(rl) - 1 0 1+ 1 -hazirlik(rl) +hazirlik(rh) - -hazirlik(rh) 1 0 1+ 2+ -hazirlik(rl) +hazirlik(rh) - - 1 1+ 0 1 -hazirlik(rl) - +hazirlik(rl) -hazirlik(rh) 1 1+ 0 2+ -hazirlik(rl) - +hazirlik(rl) - 1 1+ 1+ 1 -hazirlik(rl) - - -hazirlik(rh)

1 1+ 1+ 2+ -hazirlik(rl) - - -

2+ 0 0 1 - +hazirlik(rh) +hazirlik(rl) -hazirlik(rh) 2+ 0 0 2+ - +hazirlik(rh) +hazirlik(rl) - 2+ 0 1+ 1 - +hazirlik(rh) - -hazirlik(rh)

2+ 0 1+ 2+ - +hazirlik(rh) - -

2+ 1+ 0 1 - - +hazirlik(rl) -hazirlik(rh) 2+ 1+ 0 2+ - - +hazirlik(rl) -

2+ 1+ 1+ 1 - - - -hazirlik(rh)

2+ 1+ 1+ 2+ - - - -

Değişikliklerin mutasyon_2 işlemcisine yansıması: Mutasyon_2 işlemcisinde, aparat_atama1(k, aparat(i)) değişkeni algoritmanın genelinde olduğu gibi i. parçanın kullandığı aparatın k. sırt çantasına atanıp atanmadığını göstermektedir. Açıklanan şekilde aparatların sırt çantalarına atanma durumları algoritmanın her aşamasında takip edilmekte ve atama gerçekleştiği anda ilgili sırt çantasının kapasitesinden düşülmektedir.

4.2.3 Aparatların yasaklanmış sırt çantalarına atanmalarının önlenmesi

Aparatların yasaklı makinalara atanmasının önlenebilmesi amacı ile G_KÇSÇP modelinde kullanılan koşullar genelleştirilmiş model için hazırlanan GA’ya eklenmelidir. Bu amaçla hangi aparatın hangi sırt çantalarına atanabileceğini gösteren bir parametre kullanılmıştır. sigma(aparat(j), k) gösterimi ile kullanılan bu parametre j.

parçanın kullandığı aparatın k. sırt çantasına atanması yasaklı ise 0 değilse 1 değerini almaktadır. İlk nesil türetilirken, çaprazlama ve mutasyon işlemcileri çalışırken kapasite kontrolünün yanı sıra sigma parametresinin de 1 olması koşulu eklenerek, her aşamada yasaklı sırt çantalarına atamalar önlenmiştir.