• Sonuç bulunamadı

4. TEK SIRA TESİS DÜZENLEME PROBLEMİ İÇİN ÇÖZÜM

4.2. Genetik Algoritma ile Tek Sıra Tesis Düzenleme Probleminin Çözümü

Genetik algoritmalar, doğadaki süreçlerden ilham alarak, evrim prensiplerini izleyen algoritmalardır. Evrimsel bir yaklaşım olarak sınıflandırılan genetik algoritmalarda, çözüm yığınları üzerinde çalışılarak yeni nesiller oluşturulur. İlk olarak Holland (1975) tarafından ortaya atılmıştır ve Goldberg ve Holland (1988) çalışmalarında bu algoritmayı daha da geliştirmişlerdir.

Genetik algoritmalar, doğal seçme vasıtasıyla, canlılardaki genetik gelişimin modellenmesine dayanır. Algoritma, arama uzayındaki çözümlerden oluşan bir başlangıç yığınıyla başlamakta ve üretilen her yeni nesil, doğal seçme ve yeniden üretme işlemleriyle geliştirilerek, son neslin en kaliteli bireyini en iyiye yakın bir çözüm olarak sunmaktadır.

Genetik algoritmalar, bir taraftan, yüksek kalitedeki bireylerin özelliklerini sonraki nesillere aktararak, arama uzayında iyi çözümlerin etrafında aramayı yoğunlaştırırken, diğer taraftan küresel en iyiye ulaşmak için, arama uzayında farklı bölgeleri de araştırmaya çalışır. Çözüm yığınlarıyla işlem yaparak aynı anda, çözüm uzayının farklı bölgelerinde araştırma yapabilir. Bu özellikleriyle, pek çok araştırmacı tarafından tercih edilen bir algoritma olmuştur.

Bir GA, beş temel eleman içermelidir. Bunlar, çözümlerin gösterimi (representation), başlangıç yığını oluşturma şekli, uygunluk değerlendirme fonksiyonu (fitness evaluation),

genetik operatörler (çaprazlama, mutasyon) ve kontrol parametreleridir (Karaboğa, 2014:

76).

Çözümlerin gösterimi, probleme dayalı olarak ikili gösterim (0,1), sıralama gösterimi (permutation), tamsayı gösterimi veya gerçek gösterim şeklinde olabilmektedir. Holland (1975) tarafından önerilen ilk genetik algoritma, ikili düzende gösterim kullanılmıştır.

Tesis düzenleme çalışmalarında kullanılan çözüm gösterimi, sıralama gösterimidir.

Literatürdeki çalışmalar incelendiğinde, genellikle rastgele üretilen bireylerden oluşan başlangıç yığını kullanıldığı görülmektedir. Ancak, problem türüne göre bazı sezgisel yöntemlerden veya problem hakkında bilinen bazı çözümlerden yararlanılarak da, başlangıç yığını oluşturulabilir. Bu sayede, algoritmanın daha hızlı çözüm bulması sağlanabilmektedir.

Genetik algoritmalarda bireylerin kalitesi, uygunluk değerlendirme fonksiyonlarıyla belirlenmektedir ve uygunluk değerlendirme fonksiyonu, genellikle amaç fonksiyonu olarak seçilmektedir.

Doğada doğal olarak gerçekleşen seçilim işlemi, genetik algoritmalarda yeniden üretim operatörleriyle gerçekleştirilir. Bu operatörler, kalitesi daha yüksek olan bireyin, genetik operatörlerde işlem görecek ebeveyn birey olma şansının, daha yüksek olması prensibine göre çalışır. Daha kaliteli ebeveyn birey seçimi, gelecek nesillerin de daha kaliteli olmasını sağlayacaktır. Bunun için, rulet çemberi seçimi, turnuva seçimi, sıra-tabanlı seçim, stokastik genel seçim gibi yöntemler kullanılmaktadır.

TSTDP’lerinin genetik algoritmalarla çözümünde, yeniden üretim operatörü olarak en çok rulet çemberi ve turnuva seçimi yöntemlerinin kullanıldığı görülmüştür.

Rulet çemberi yönteminde, yığındaki her birey, uygunluk değerlendirme fonksiyonuna göre bir rulet çemberi etrafına sıralanır. Her birey çemberde, uygunluk değerine göre bir alana sahiptir. Bu alan, bireyin uygunluk değerinin yığının uygunluk değerine oranına göre hesaplanır. Daha büyük alana sahip bireyin seçilme olasılığı daha yüksektir. Çember, yeniden üretim uygulanacak bireyleri seçebilmek için, yığın büyüklüğü sayısı kadar döndürülür. Bu işlem, rastgele üretilen sayılarla gerçekleştirilir. Üretilen sayı, hangi

bireyin alanına denk gelirse, o birey genetik operatörlerle işlem görmek üzere, eşleştirme havuzuna seçilir.

Turnuva seçimi yönteminde ise, yığından rastgele bir şekilde seçilen bireyler, uygunluk değerlerine göre karşılaştırılır ve daha kaliteli olan birey eşleştirme havuzuna alınır. Bu prosedür, yığın büyüklüğü sağlanana kadar devam ettirilir. Turnuva seçimi yönteminde, yığından seçilecek birey sayısı genelde 2 olarak belirlenir ve buna ikili (binary) turnuva seçimi denir. Ancak daha fazla sayıda birey seçerek de, bir karşılaştırma yapmak mümkündür ve yöntem seçilen grup büyüklüğüne göre isimlendirilir (üçlü turnuva seçimi gibi).

Çaprazlama operatörü, iki ebeveyn bireyden çocuk bireyler oluşturmayı hedefler. Bireyler arasında bilgi alışverişi yapılarak, arama uzayının yeni bölgelerinde de araştırma yapılması sağlanmış olur. Bunun için tek noktalı çaprazlama, n-noktalı çaprazlama, uniform çaprazlama yöntemleriyle birlikte, özellikle sıralama çözüm gösterimine sahip problemlerde, sıralı çaprazlama, parçalı eşlenmiş çaprazlama (PMX – partial matched crossover), iki-noktalı çaprazlama gibi çeşitli yöntemler kullanılmaktadır (Talbi, 2009:

218). Çaprazlama işlemi, önceden belirlenen çaprazlama oranında gerçekleşir. Bu oran genellikle 0,45 ile 0,95 aralığında seçilir (Talbi, 2009: 214). Çaprazlama oranının gerekenden büyük seçilmesi, yığının hızlı bir şekilde değişmesine sebep olur, küçük seçilmesi ise, yakınsamanın yavaş gerçekleşmesine sebep olur.

Tez kapsamında yapılan çalışmada, sıralı çaprazlama yöntemi kullanılmıştır. Bu yönteme göre, seçilen 1. ebeveyn bireyden rastgele bir şekilde ve rastgele sayıda eleman içeren bir parça seçilir ve 2. ebeveyn bireyde, bu parçada yer alan elemanlar silinir. Rastgele olarak seçilen parçanın 1. ebeveynde bulunduğu sıra numarası belirlenir. Seçilen parça, 2.

ebeveynin sıralamasına bu sıra numarasından itibaren olacak şekilde yerleştirilir ve çocuk birey (offspring) üretilmiş olur. Aynı işlem 2. ebeveynden rastgele bir şekilde ve rastgele sayıda eleman içeren bir parça seçilmesiyle tekrarlanır ve 2. çocuk birey üretilir. Yeni yığında çaprazlama yapılan ebeveynler yerine çocuk bireyler yer alır (Şekil 4.2).

Şekil 4.2. Sıralı çaprazlama

Mutasyon operatörü, yığından seçilen bireylerde küçük değişiklikler yapılmasını sağlar ve işlem yalnızca seçilen bireyi etkiler. Sıralama çözüm gösterimine sahip problemlerde genellikle, ikili yer değiştirme, araya ekleme veya tersine çevirme yöntemleriyle mutasyon işlemi gerçekleştirilmektedir. Yığındaki her birey, önceden belirlenen bir mutasyon oranında, mutasyon işlemine tabi tutulur. Mutasyon oranının, gerekenden yüksek belirlenmesi, genetik algoritmada aramanın rassal aramaya yakın şekilde gerçekleşeceği anlamına geldiği için, bu oran küçük tutulmalıdır. Bu oran genellikle 0.001-0.01 aralığında seçilmektedir (Talbi, 2009: 208).

Genetik algoritmanın temel adımları Karaboğa (2014: 76) tarafından şu şekilde verilmiştir;

 Başlangıç yığınının oluşturulması

 Yığındaki her bireyin uygunluk değerinin hesaplanması

 Durdurma koşulu sağlanmıyorsa

o Yeniden üretim işleminin uygulanması o Çaprazlama işleminin uygulanması o Mutasyon işleminin uygulanması

Basit bir genetik algoritmanın sözde kodları aşağıdaki gibidir (Simon, 2014: 50);

Ebeveyn 1 3 1 2 4 6 5

Ebeveyn 2 6 4 1 5 2 3

Ebeveyn 2 1 5 3

Çocuk 1 1 5 2 4 6 3

seçilen parça

Ebeveynler {rastgele üretilmiş yığın}

Durdurma koşulu sağlanmadıysa,

Her ebeveyn bireyin uygunluk değerini hesapla Çocuklar  { }

|Çocuklar|<|Ebeveynler| iken

Yeniden üretim mekanizmasını kullanarak eşleşme havuzunu oluştur c1 ve c2 çocuk bireylerini oluşturmak için ebeveynleri eşle

Çocuklar  Çocuklar U {c1, c2}

Rastgele seçilen çocuk bireylere mutasyon uygula Ebeveynler  Çocuklar

Bir sonraki nesil

Genetik algoritmanın TDP’lerinde uygulamasının ilk örneği Tate ve Smith’in (1995) çalışmalarında görülmektedir. Bu makaledeki çalışmanın başarılı sonuçlarından sonra, tesis düzenleme problemlerinde pek çok genetik algoritma uygulaması yapılmıştır. Genetik algoritmaların, eşit olmayan alanlı tesis düzenleme problemleri uygulamaları (Li ve Love, 2000; Wong, Fung ve Tam, 2010), eşit alanlı tesis düzenleme problemleri uygulamaları (Mawdesley ve Al-Jibouri, 2003), çok kriterli tesis düzenleme problemleri uygulamaları (Wang, Hu ve Ku, 2005) ve çok katlı tesis düzenleme problemleri uygulamaları (Lee, Roh ve Jeong, 2005) bulunmaktadır.

TSTDP’lerinin çözümünde de, genetik algoritmaların oldukça popüler olduğu görülmektedir. İlk olarak Murad (2000) tarafından TSTDP çözümünde genetik algoritma kullanılmıştır ve çalışmasında geri dönüşleri (backtrack) en küçüklemeyi hedefleyen bir algoritma geliştirilmiştir. Aynı çalışmada, çok sıralı tesis düzenleme problemleri için de genetik algoritma ile bir çözüm önerilmiştir. Genetik algoritmanın parametreleri olarak, yığın büyüklüğünü 40, çaprazlama oranını 0,7; mutasyon oranını 0,3; üretilecek en fazla nesil sayısını 100 olarak kabul etmişlerdir.

Ponnambalam ve Ramkumar (2001), bir imalat sisteminde tek sıralı doğrusal bir bölüm yerleşimi problemine, literatürdeki akış hattı analizi yöntemleriyle genetik algoritmayı birleştirerek (hibrid) çözüm sunmuşlardır. Rastgele yerleştirme karıştırmasıyla (random insertion perturbation), akış hattı analizinden elde edilen çözümlere dayalı bir başlangıç yığını oluşturmuşlardır. Geliştirdikleri genetik algoritmada, rulet çemberiyle seçim ve tek

noktalı çaprazlama yöntemlerini kullanmış, çaprazlama oranı değerini 0,3; mutasyon oranı değerini 0,07 ve üretilecek en fazla nesil sayısını 100 aldıkları durumda, genetik algoritmanın en iyi performansı gösterdiğini belirtmişlerdir.

El-baz (2004), malzeme taşıma maliyetlerini en küçüklemeyi hedefleyen bir genetik algoritma geliştirmişlerdir. Bu algoritmada, Monte Carlo seçim metodunu, ikili yer değiştirme yöntemiyle mutasyon şeklini kullanmış, çaprazlama için ise yeni bir yöntem önermiştir.

Ficko ve diğerleri (2004), geliştirdikleri genetik algoritmayı test etmek amacıyla, 14 bölümlü bir esnek imalat sisteminin tasarımını yapmışlardır. Doğal seçim metodu olarak turnuva seçimi yöntemini kullanmışlar, bunun için yığından seçilen 3 birey arasından en uygununu seçmişlerdir. Çaprazlama metodu olarak ise, parçalı eşlenmiş çaprazlama kullanmışlardır. Çift taraflı mutasyon yöntemiyle, iki rasgele elemanın yerleri değiştirilerek yeni birey oluşturulmuştur. Yeniden üretim oranı 0,65; çaprazlama oranı 0,35; mutasyon oranı 0,35 ve yığın büyüklüğü olarak 3000 birey alındığı zaman, genetik algoritmayla daha iyi çözümlere ulaştıklarını görmüşlerdir.

Lin (2009) tarafından yapılan çalışmada, bir hazır giyim atölyesinde, tezgâhlar arası dolaşan parçaların kat ettikleri mesafeyi en küçüklemek amacıyla, hiyerarşik sıra tabanlı bir genetik algoritma yöntemiyle problemi ele almışlardır. Daha önce bahsedilen çalışmalardan farklı olarak, rulet çemberiyle doğal seçimi gerçekleştirmişlerdir. 41 bölümden oluşan bir tesis için yığın büyüklüğünü 50, çaprazlama oranı değerini 0,6;

mutasyon oranını 0,008 ve üretilecek en fazla nesil sayısını 200 olarak kabul etmişlerdir.

Datta ve diğerleri (2011) genetik algoritmayı çözüm yöntemi olarak seçtikleri çalışmalarında, dört farklı başlangıç yığını oluşturma metodu kullanmışlardır. Bunlar, rastgele yığın oluşturma, en yüksek akışa sahip çiftleri ardışık yerleştirme, aralarındaki malzeme akış miktarı düşük olan bölüm çiftleri sıralamanın uçlarında, yüksek olanlar ise sıralamanın ortalarında yer alacak şekilde akış tabanlı sıralama ve uzunluk tabanlı sıralama yaklaşımlarıdır. Eşit oranda bir olasılıkla, bahsedilen başlangıç yığını oluşturma metotlarından birisi seçilmiştir. Yine eşit olasılıkla yığın büyüklüğü 50 veya 60 olarak seçilmiştir. Seçim mekanizması olarak, ikili turnuva seçim operatörünü kullanmışlar, çaprazlama oranı değerini 0,6; 0,7; 0,8; 0,9 ve 0,95 değerleri arasından rastgele

seçmişlerdir. Bireylerin mutasyonunda, çaprazlama operatörü kullanılmadığı durumda bile etkili olan, öz uyarlanan (self-adaptive) mutasyon oranı yöntemini kullanmışlardır.

Literatürde daha önce çalışılmış olan 80 bölüme kadar olan problemleri çözmüşler, 30 bölümden oluşan tesislere kadar en iyi sonuca ulaşmışlardır.

Özçelik (2012), yukarıda bahsedilen makalelerden farklı olarak, bölümler arası boşluklar bırakılması gereken durumları ele almış ve problemin çözümü için genetik algoritmayla, yerel arama operatörü özelliklerini birleştirmiştir. Bu algoritmada ikili turnuva seçimi, sıralı çaprazlama, eklemeli mutasyon kullanılmış, mutasyondan sonra rastgele seçilen bireylere yerel arama algoritması uygulanmış ve elde edilen sonuçlar üzerinde elit strateji uygulaması yapılmıştır. Makalede, yığın büyüklüğü 30 ve 50 birey, çaprazlama oranı değeri 0,4 veya 0,9; mutasyon oranı değeri 0,001; 0,01 ve 0,1; üretilecek en fazla nesil sayısı 200 olarak alınmıştır.

Kothari ve Ghosh (2014) da GENALGO adını verdikleri algoritmalarında, Özçelik (2012) gibi, genetik algoritmayla yerel arama algoritmasını birleştirmişlerdir. Başlangıç yığınını rastgele olarak üretmiş; seçim mekanizması olarak ikili turnuva metodunu, çaprazlama yöntemi olarak kısmi birleşmeli çaprazlamayı, mutasyon yöntemi olarak eklemeli mutasyonu ve elit koruma stratejisini kullanmışlardır. Düzenli aralıklarla bireylerin uygunluğunu arttırmak için, her 5 iterasyonda bir, yığındaki tüm bireylerin yerel arama algoritmasıyla gelişmesini sağlamışlardır. Kullanılan yerel arama algoritmasında, komşuluk yapısı olarak ekleme tabanlı komşuluk yapısı kullanılmıştır. GENALGO algoritması, çaprazlama oranı için 0,6; 0,7; 0,8; 0,9 ve 0,95 değerleri arasından; mutasyon oranı için 0,001 ve 0,05 değerleri arasından rastgele seçim yapmaktadır. Algoritmada üretilecek en fazla nesil sayısı 5000 olarak belirlenmiştir. GENALGO algoritmasının büyük boyutlu problemlerde de başarılı sonuçlar verdiği görülmüştür.

İncelenen çalışmaların ışığında, tez kapsamında önerilen genetik algoritmanın bileşenleri aşağıdaki gibi belirlenmiştir.

Çözüm gösterimi olarak permütasyon tipi gösterim seçilmiştir. Yığını oluşturan her bir birey, makinaların bir sıralamasını ifade etmektedir. Bireyin her elemanı, yani kromozomun her geni, bir bölüme karşılık gelmektedir. Başlangıç yığını oluşturulurken, rastgele olarak üretilen bölüm sıralamaları kullanılmıştır.

Yığın büyüklüğü (N) değeri olarak, belirli bir değer kullanılmamış, bunun yerine problemin büyüklüğüne bağlı bir kullanımın daha uygun olacağına karar verilmiştir.

Yapılan denemeler sonucunda, yığın büyüklüğü (5*bölüm sayısı) olarak alınmıştır.

Üretilecek nesil sayısı olarak da, belirli bir değer kullanmak yerine, yapılan denemeler sonucunda (2*bölüm sayısı) değeri kullanılmıştır.

Uygunluk değerlendirme fonksiyonu olarak, problemin amaç fonksiyonu olan akış mesafesi kullanılmıştır. Bu değer, bölümler arası parça akış miktarı ve bölümler arası uzaklıkların çarpımından elde edilmekte, her bölüm çifti için bulunan akış mesafesi değeri toplanarak, toplam akış mesafesi değerine ulaşılmaktadır.

Yeniden üretim operatörü olarak ikili turnuva seçimi kullanılmıştır. TSTDP hakkında yapılan çalışmalar incelendiğinde, en çok bu yöntemin kullanıldığı görülmüştür. Ayrıca yapılan denemelerde, ikili turnuva seçiminin, rulet çemberi yöntemine göre daha iyi sonuç verdiği gözlemlenmiştir. İkili turnuva seçiminde, yığından rastgele olarak seçilen iki birey, uygunluk değerlendirme fonksiyonu açısından karşılaştırılmakta ve daha iyi olan birey genetik operatörlerde işlem görmek üzere seçilmektedir. Bu işlem, eşleşme havuzunda yığın büyüklüğü sayısı kadar birey olana kadar devam ettirilmektedir.

Yeniden üretim operatörüyle oluşturulan eşleşme havuzuna, belirli oranda çaprazlama işlemi uygulanır. Bu oran yapılan denemeler sonucunda 0,6 ve 0,7 olarak belirlenmiştir.

Çaprazlama yöntemi olarak, Özçelik (2012) tarafından da kullanılan ve yukarıda anlatılan sıralı çaprazlama yöntemi kullanılmıştır.

Çaprazlama işleminden sonra elde edilen yeni yığında, rastgele olarak seçilen bir bireye mutasyon uygulanır. Mutasyon oranı, denemeler sonucunda 0,05 ve 0,01 olarak seçilmiştir ve çalışmalar ışığında araya eklemeli mutasyon uygulanmasına karar verilmiştir. Bu yöntemde, bireyde rastgele seçilen bir konuma rastgele seçilen bir bölüm yerleştirilmektedir.

Tüm genetik operatörlerle yapılan işlemler sonucunda elde edilen yeni yığınla, yeniden üretim, çaprazlama ve mutasyon işlemlerine henüz girmemiş başlangıçtaki yığın

harmanlanır ve büyüklüğü (2*N) olan yeni bir yığın elde edilir. Bu yeni yığındaki bireyler uygunluk değeri fonksiyonuna göre değerlendirilir ve en iyi N adet birey bir sonraki nesli oluşturur. Bu yöntemle yığındaki iyi bireylerin, bir sonraki nesle aktarımı sağlanmış ve elitizm stratejisiyle iyi genler korunmuş olur.

Yeni nesil üretme işlemi belirlenen sayıda gerçekleştirildikten sonra, algoritma çalışmayı durdurmakta ve son yığındaki sonuçlar arasındaki en iyi sonuç çözümü vermektedir.

Genetik algoritmalar, yapılan ön çalışmalarda, 0,6 çaprazlama oranı ve 0,05 mutasyon oranında; 0,7 çaprazlama oranı ve 0,01 mutasyon oranı olduğu durumlarda en iyi sonuçları vermiştir. Parametre değerlerinin farklı olduğu bu iki algoritmaya, sırasıyla GA1 ve GA2 isimleri verilmiştir.