• 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.3.1 Test problemlerinin türetilmesi

uyum(i) = uyum(i) + nknap * enbp * Sqr(normkare) if uyum(i) >= 0 then uyum(i) := -1;

Yukarıda verilmiş olan kodlama, GAGSS’nin, uyum fonksiyonunun hesaplandığı bölümünde i döngüsü içinde yer almakta ve öncesinde uyum değerleri amaç fonksiyonuna uygun olarak hesaplanmaktadır. Hesaplanan bu değerler uyum(i) değişkeninde saklanmaktadır.

4.3 Sonuçlar

Genelleştirilmiş karesel çoklu sırt çantası problemi daha önce yazında ele alınmamış bir problem olduğu için, bu problem için geliştirilmiş olan bir algoritmanın etkinliğini araştırmak için öncelikle rassal olarak test problemlerinin türetilmesine daha sonra da karşılaştırma yapılacak bir yönteme gereksinim vardır. İzleyen bölümde testlerde kullanılan problemlerin nasıl türetildikleri açıklanmış, genetik algoritmanın testlerde kullanılacak parametreleri belirlenmiş ve daha sonra tüm problemler GAMS/DICOPT ile ve GAGSS ile çözülerek karşılaştırılmıştır.

4.3.1 Test problemlerinin türetilmesi

Doğrusal sırt çantası problemlerinde, wj ağırlık ve pj kâr parametreleri arasında korelasyon olup olmaması problemin zorluğunu etkilemektedir. Korelasyon arttıkça problem zorlaşmaktadır (Kellerler et.al., 2004). Bu nedenle test problemleri de genellikle korelasyonsuz, az korelasyonlu ve güçlü korelasyonlu olarak türetilmektedir (Martello et.al., 2000; Anagün and Sarac, 2006). Hua ve Huang (2005) çalışmalarında karesel sırt çantası problemini korelasyonsuz, az korelasyonlu ve güçlü korelasyonlu olarak türetmek için formülasyon önermiştir. Karesel sırt çantası problemlerinde bir diğer önemli özellik ise pj ve qij kar parametrelerinin yüzde kaçının sıfırdan farklı

olduğunu gösteren yoğunluk özelliğidir. Julstrom (2005), tarafından da kullanılmış olan Billionnet ve Soutif (2003) test problemlerinde %25, %75 ve %100 olmak üzere farklı yoğunluklarda problemler türetilerek test edilmiştir.

Sırt çantası problemlerinde bir diğer önemli özellikte sırt çantası kapasitesinin büyüklüğüdür. Hiley ve Julstrom (2006) KÇSÇP ele aldıkları çalışmalarında kapasiteyi c1=c2=….=cm= n w m

j j

⎜ ⎞

⎛ ⋅∑

=1

8 .

0 formülünü kullanarak türetmişlerdir. Billionnet ve

Soutif (2003)’in türettikleri KSÇP problemlerinde ise

1 n

j j

c w

= oranının %3 ile %93 arasında değiştiği görülmektedir.

Yine çoklu sırt çantası problemlerinde sırt çantası sayısı (m) önemli bir parametredir. Hiley ve Julstrom(2006), çalışmalarında 100 ve 200 parçaya sahip KÇSÇP test problemlerini 3, 5 ve 10 sırt çantası olması durumlarına göre ele alarak çözmüşlerdir.

Genelleştirilmiş karesel çoklu sırt çantası problemi, önceki çalışmalardan farklı karar değişkeni ve kısıtlar içerdiğinden, doğal olarak daha önce yazında ele alınmamış farklı özelliklere de sahiptir. Sözgelimi, aparatların ait oldukları parça sayıları, aparatların kapasite kullanım miktarlarının kısa ya da uzun olması, aparat kopya sayılarının az ya da çok olması, aparat sayısının parça sayısına oranının büyük ya da küçük olması, aparatlar için sırt çantalarının yüzde kaçının yasaklanmış olduğu, aparatların sırt çantası tercihlerinin benzerlik göstermesi ya da bağımsız olması problemin zorluğunu etkileyebilecek özelliklerdir.

Bu çalışmada kullanılacak olan test problemlerinin tüm bu sayılan özellikleri içerebilecek şekilde türetilmesi amaçlanmıştır. Bu amacı gerçekleştirebilmek için G_KÇSÇP’nin her parametresinin hangi özellikleri ele alınarak nasıl türetildiği izleyen paragraflarda açıklanmıştır. Türetilen örneklerin hızlı ve doğru bir şekilde türetilmelerini garanti edebilmek için bir Excel VBA kodu yazılmıştır. Bu kod açık

haliyle Ek.1’de verilmiştir. Hazırlanan program, parametreleri türettikten sonra hem GAMS veri dosyası hem de GA’nın kullanacağı Excel sayfası olarak da düzenlemektedir.

Test problemlerinde, wj , pj ve qij parametreleri Hua ve Huang’ın 2005 yılındaki çalışmalarında önerdikleri gibi korelasyonsuz, az korelasyonlu ve güçlü korelasyonlu olmak üzere üç farklı yapıda türetilebilecek şekilde tasarlanmıştır. Aşağıda korelasyon durumlarına göre parametrelerin nasıl türetildikleri verilmiştir. Burada x ~ U(y,z) gösterimi x rassal değişkeni, [y,z] aralığında düzgün dağılmaktadır anlamına gelmektedir.

Korelasyonsuz örnek Az korelasyonlu örnek Güçlü korelasyonlu örnek w′j ~ U(1,w) w′j ~ U(1,w) w′j ~ U(1,w)

p′j ~ U(0, p ) p′j = 10wi ± U(0, p /10) p′j = 10wi + p /10 q′ij ~ U(0, 4 H ) q′ij = wi/5 + wj/5 ± U(0, 2 H ) q′ij = 2(wi/5 + wj/5)

Burada, w, p ve H Hua ve Huang (2005)’ten alınan ve örnek türetmede kullanılan sabit sayılardır. Bu değerler Çizelge 4.2’de verilmiştir. Bu çizelgede ilk satır katsayı grup numarasını göstermektedir.

Çizelge 4.2: Hua ve Huang (2005)’ten Alınan Örnek Türetme Parametre Değerleri Tablosu

no 1 2 3 4 5

w 10 20 30 40 50

p 100 200 300 400 500

H 2 4 6 8 10

Yukarıda açıklandığı gibi türetilen parametreler tamsayıya yuvarlanarak kullanılmıştır. qij = [q′ij] , wj = [w′j], pj = [p′j]. Çizelge 4.2’deki beş farklı grup katsayı kullanılarak her korelasyon tipinden 5 farklı yapıda test problemi üretmek mümkündür.

Test problemi türetme makrosu, veri giriş ekranına girildiğinde, istenilen sayıda sırt çantası ve aparat içerebilecek şekilde, istenilen kapasite oranına (sırt çantalarının kullanabileceği kapasite toplamlarının toplam ağırlığa oranına) ve yasaklı sırt çantası oranına sahip problemler oluşturabilmektedir.

G_KÇSÇP modelindeki diğer parametreler sırasıyla, parçaların hangi aparatı kullandıklarını gösteren trj parametrelerinin değerleri belirlenirken tüm aparatların bir parça tarafından kullanılmalarını garanti edebilmek için, ilk h (aparat sayısı) parametreye, 1. parçadan başlayarak sırasıyla 1 ile h aralığındaki aparatları kullanacak şekilde izleyen şekilde 0-1 değerleri atanır.

( )

1 eger

0 .

r j j h

r j

t dd

⎧ =

= ⎨⎩

( j > h ) olan parçalara ait trj parametrelerinin değerleri ise iki şekilde üretilebilecek şekilde tasarlanmıştır. Rassal yapıdaki problemler izleyen şekilde üretilir.

Burada πj her j için [1, h] aralığında rassal değer alan bir tamsayıdır.

( )

1 eger

0 .

j r j j h

t r

dd π

>

⎧ =

= ⎨⎩

Birçok parçanın yoğunlukla aynı aparatı kullandığı durumdaki, bir aparat yoğun problem ise aşağıdaki şekilde türetilir. Burada π, [1, h] aralığında rassal değer alan bir tamsayıdır.

( )

1 eger

0 .

r j j h

t r

dd π

>

⎧ =

= ⎨⎩

Aparatların kapasite kullanımlarını gösteren sr parametresi ve aparat kopya sayılarını gösteren δr parametreleri de istenilen aralıkta türetilebilmektedir.

Aparatların sırt çantası tercihlerini gösteren ψrk parametresi ise, aparatlarının tümünün aynı makina tercihlerine sahip olması, aparatların aynı tercihlere sahip iki grup oluşturması, üç grup oluşturması ve aparatların tamamen bağımsız makina tercihlerine sahip olması şeklinde dört tipte türetilebilecek şekilde tasarlanmıştır.

Yukarıda sayılan tüm bu özelliklere sahip problemlerin, türetilmesi aşamasında problem yapısını etkileyen 12 faktörün var olduğu söylenebilir. Sözü geçen bu faktörlere verilen isimler ve açıklamaları Çizelge 4.3’te yer almaktadır.

Çizelge 4.3: Test Problemlerinin Yapısını Etkileyen 12 Faktör ve Bu Faktörlerin Düşük ve Yüksek Düzeyleri

Faktör adı Açıklama Düşük düzey (-1) Yüksek düzey (1)

n Problem boyutu / parça sayısı 30 300

no Tablo1’deki parametre türetme

numarası 1 5

korelas wj ve pj ve pij parametreleri

arasındaki korelasyon düzeyi korelasyonsuz güçlü korelasyonlu

k Sırt çantası sayısı n / 30 n / 10

kap Sırt çantası kapasitelerinin

toplamının toplam ağırlığa oranı 0.4 0.8

trj Parçaların aparat kullanım profili Rassal yapıda Bir aparat yoğun sr Hazırlık sürelerinin uzunluğu [1,w/4] [w/4,w/2]

kopya Aparatların kopya sayıları 1 [2, n / h]

r Aparat sayısı n / 10 n / 2

sigma Yasaklı sırt çantası oranı 0.4 0.8

tip Aparatların sırt çantası tercihleri Tüm aparatların makina tercihleri

aynı

Tüm aparatların makina tercihleri

farklı yogun Sıfırdan farklı pj ve pij

parametrelerinin oranı 0.25 1.00

Çizelge 4.3’te yer alan 12 faktörün tamamının sadece iki düzeyli olarak incelenmesi durumunda bile tam faktöriyel bir deney tasarımı yapılmak istenirse 212 = 4096 farklı tipte problem türetilmesi gerekecektir. Bu nedenle tüm faktörlerin iki düzeyli olduğu, 1/128 kesirli bir tasarım seçilmiş ve bu sayede 32 test probleminin türetilmesi yeterli olmuştur. Faktörlerin düşük (-1) ve yüksek (1) düzeylerinin ne anlama geldiği de Çizelge 4.3’te verilmiştir. Çizelge 4.4’te ise türetilen örnek problemlerin numaraları ve bu problemlerin, faktörlerin hangi düzeylerinin seçilmesi ile türetildiği görülmektedir.

Çizege 4.4: 1/128 Kesirli Deney Tasarımı Tablosu

örnek n no korelas k kap trj sr kopya r sigma tip yogun 1 1 -1 -1 -1 1 -1 1 1 -1 1 -1 -1 2 1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 3 1 1 1 -1 1 1 -1 -1 1 -1 -1 -1

4 1 -1 1 -1 -1 -1 -1 1 1 1 -1 1

5 -1 1 1 1 -1 1 -1 -1 1 -1 1 1

6 -1 -1 1 -1 -1 1 1 -1 -1 1 1 -1

7 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1

8 -1 -1 -1 1 1 1 1 1 1 -1 -1 -1

9 1 1 -1 1 -1 1 -1 1 -1 1 1 -1

10 1 -1 -1 1 1 -1 -1 -1 -1 -1 1 1

11 1 -1 1 -1 1 1 -1 1 -1 -1 1 -1

12 1 1 1 1 1 1 1 1 1 1 1 1

13 1 -1 1 1 -1 -1 1 -1 1 -1 1 -1

14 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1

15 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

16 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1

17 1 -1 1 1 1 1 1 -1 -1 1 -1 1

18 -1 1 -1 -1 1 1 -1 1 -1 1 -1 1

19 1 -1 -1 -1 -1 1 1 1 1 -1 1 1

20 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1

21 1 1 -1 -1 1 -1 1 -1 1 1 1 -1

22 -1 1 -1 1 1 1 1 -1 -1 -1 1 -1

23 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 1

24 1 1 -1 1 1 -1 -1 1 1 -1 -1 1

25 -1 1 -1 1 -1 -1 1 -1 1 1 -1 1

26 -1 -1 1 -1 1 -1 1 -1 1 -1 -1 1

27 -1 1 -1 -1 -1 -1 -1 1 1 -1 1 -1

28 -1 1 1 -1 -1 1 1 1 1 1 -1 -1

29 -1 1 1 1 1 -1 -1 -1 -1 1 -1 -1

30 -1 -1 -1 1 -1 -1 1 1 -1 1 1 1

31 -1 -1 1 1 1 -1 -1 1 1 1 1 -1

32 -1 1 1 -1 1 -1 1 1 -1 -1 1 1