Akademik BiliÅim '10 10 - 12 Åubat 2010 MuÄla
Akademik BiliÅim '10 10 - 12 Åubat 2010 MuÄla
Akademik BiliÅim '10 10 - 12 Åubat 2010 MuÄla
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir YaklaşımMehmet Ali Aytekin, Tahir Emre Kalaycı2.3. Birey ÜretimiYeni bireylerin üretimi GA’nın kalbidir. Yeniüretilen bireylerin, ata bireylere göre dahayüksek uygunlukta olması beklenir. Bireyüretiminde üç önemli karar aşaması vardır:ata bireyleri seçme(seçilim), yeni bireyleriüretme(çaprazlama ve mutasyon) ve üretilenyeni bireyleri populasyona ekleme işlemi[9].2.3.1. SeçilimSeçilim işlemi, yeni bir birey üretmek için popülasyondanvar olan bireyleri seçme işlemidir.Seçilim metodunun nasıl olduğu, GA’ ın yakınsamasınıda belirlemektedir[9]. Bazı seçilimyöntemleri Sıralama Seçilim, Rastgele Seçilim,Rulet Tekerleği ve Boltzmann Seçilimidir.2.3.2. Yeni birey ÜretimiAta bireyler seçildikten sonra, önemli bir aşamada, seçilen bu bireylerden yeni bireylerin nasılüretileceğidir. Bu aşama çaprazlama olarak dabilinir. Çaprazlama işleminde daha önce incelenmemişolan çözümlerin incelenmemesi veyüksek uygunlukta çözümlerin üretilmesi beklenir.Üretilen bir çözümde, belli genlerin değerleriyleoynama işlemi de “mutasyon” olarak algılanmaktadır.Mutasyon işleminin amacı, GA’yıyerel minimum değerlerinden kurtarmaktır.2.3.3. Üretilen bireyleri populasyona eklemeBu aşamada karar verilmesi gereken şey, üretilenyeni bireylerin, yani çocukların, populasyonanasıl ekleneceğidir. Bazı yaklaşımlar şunlardır:populasyondaki kötü bireyler ile çocukbireyler yer değiştirebilir, çocuk bireyler ile atabireyler yer değiştirebilir, veya çocuk bireylerile önceki populasyon birleştirilip, bu son populasyondanilk “n” birey yeni populasyon olarakalınır. Ayrıca her yeni nesil üretiminde, bir öncekipopulasyonun en iyi bireylerinin elde tutuluptutulmayacağı (seçkincilik - “elitism”) dakarar verilmesi gereken önemli bir durumdur.3. İkili Kodlu Genetik AlgoritmaBu çalışmada geliştirdiğimiz yöntem İkili KodluGenetik Algoritmalar'dır. Tabii bu yöntem274Lidd'in geliştirmiş olduğu İkili Kodlu GenetikAlgoritmalar'dan farklıdır. 4.1'de Lidd'in geliştirdiği,4.2' de ise bizim geliştirdiğimiz yöntemtanıtılacak. 4.3. de geliştirilen yöntem, GSP'yi çözmek için kullanılan diğer GA yöntemlerikarşılaştırılacak; 4.4'de de geliştirilen yöntemavantaj ve dezavantajları ortaya konulacaktır.3.1. Lidd' in Geliştirdiğiİkili Kodlu Genetik Algoritman,şehirli GSP' nin ikili temsilinde, her şehri diğerlerindenfarklı olacak şekilde temsil etmekiçin 'lik bit dizisine ihtiyacımız olacaktır. Böylecekromozom boyutu da n* olacaktır. Örnekvermek gerekirse 6 şehirlik bir GSP, ikili temsilleaşağıdaki gibi kodlanır.i Şehir i i Şehir i1 000 4 011<strong>10</strong>02 001 53 0<strong>10</strong> 6 <strong>10</strong>1Tablo 1 - Şehirler ve İkili Temsil Olarak KarşılıklarıBurada dikkat edilmesi gerekilen nokta, hemher şehri ayrı ayrı ikili değer ile temsil etmemizhem de 1<strong>10</strong> ve 111 3-bitlik string'ler olmasınarağmen gen olarak tanımlanmamış olmasıdır.Örneklerde kullanacağımız kromozomlar (000001 0<strong>10</strong> 011 <strong>10</strong>0 <strong>10</strong>1) ve (<strong>10</strong>1 <strong>10</strong>0 011 0<strong>10</strong> 00<strong>10</strong>00) olsun.3.1.1. Klasik çaprazlamaJohn Holland'ın tanımladığı [20] klasik çaprazlamadaiki kromozom üzerinden rasgele birçaprazlama noktası seçilir ve her kromozombu çaprazlama noktasından alt parçalara ayrılır.Daha sonra kromozomlar arasında farklıparçalar yeniden birleştirilir. Farzedelim ki 9.ve <strong>10</strong>. bitler arasını çaprazlama noktası olarakseçilsin:(000 001 0<strong>10</strong> | 011 <strong>10</strong>0 <strong>10</strong>1)(<strong>10</strong>1 <strong>10</strong>0 011 | 0<strong>10</strong> 001 000)Şimdi kromozomlaradaki farklı parçaları birleştiripçocuk kromozomları üretelim. (000001 0<strong>10</strong> 0<strong>10</strong> 001 000) ve (<strong>10</strong>1 <strong>10</strong>0 011 011 <strong>10</strong>0<strong>10</strong>1) yeni bireylerimiz olacaktır. Fakat bu bireylergeçerli bir tur oluşturmuyor. Bu durumdabunları düzeltmek için bir “tamir edici algoritma”(repair algorithm) ya ihtiyaç duyarız[1].3.1.2. Klasik MutasyonYine John Holland'ın [20] tanımladığı klasikmutasyon operatörü belli bir olasılıkla (mutasyonolasılığı), bir veya bir kaç genin değerinideğiştirir. Mesela şu kromozom üzerinde mutasyonişlemi uygulayalım:(000 001 0<strong>10</strong> 011 <strong>10</strong>0 <strong>10</strong>1)Diyelimki birinci ve ikinci bit mutasyon işlemiiçin seçilmiş olsun. Bu durumda bu bitlerdekideğerler 0'dan 1'e dönüşür. Böylece mutasyonauğramış kromozomumuz (1<strong>10</strong> 001 0<strong>10</strong> 011<strong>10</strong>0 <strong>10</strong>1) halini alır ki bu da geçerli bir tur değildir.Düzeltilmesi gerekirLidd'in çalışması küçük boyutlu veriler (<strong>10</strong>0 şehirliGSP' ye kadar) için iyi sonuçlar üretse de,Whitley'ın da ifade ettiği gibi GSP için önerilenbir temsil şekli olamamaktadır[16]. WhitleyGSP'nin ikili temsil ile sıra bağımlılığından kurtararakveya işleçlerin anlamlı bir şekilde uygulanabildiğişekilde temsil etmenin pratik bir yoluolmadığını söylemektedir Bu nedenle uygulananişleçlerin hatalı kromozomların üretilmesineneden olduğunu, çaprazlama ve mutasyon sonucundatekrarlı ya da eksik şehirler içeren çözümlerüretildiğini belirtmektedir. Sonuç olarakbu problemi çözmek için, standart genetik çaprazlamaişleçlerinin değiştirilerek (bir bakımaprobleme uyarlanarak) kullanılması gerektiğinisavunmaktadır. İdeal üretim tekniklerinin, atalardanbilgiyi bozmadan tutarlı bir şekilde almasıgerektiğini çalışmasında [16] yazmıştır.3.2. Geliştirilen Yeni YöntemBiz geliştirdiğimiz yöntemde, Lidd'in yaptığınıaksine her şehre ikili temsilde kodlanmış birpermütasyon atamanın aksine, bir puan değeri<strong>Akademik</strong> Bilişim’<strong>10</strong> - XII. <strong>Akademik</strong> Bilişim Konferansı Bildirileri<strong>10</strong> - <strong>12</strong> Şubat 20<strong>10</strong> Muğla Üniversitesi275atıyoruz. Böylece her genin, kromozom içindeelde ettiği bir puan değeri olmuş oluyor. Dahasonra bu puan değerleri bizim belirlediğimizkriterlere göre sıralanarak, geçerli bir tur eldeediyoruz. Burada önem çekmek istediğimizolay, her gene ait bir puan değerinin olmaması(yani permütasyon oluşturma çabası yok), hatalıya da eksik gen üretimi gibi olayların ortadankalkmış olmasıdır.6 şehirlik bir GSP düşünelim. Bu problemde herşehri temsil etmek için kullanmamız gereken bitsayısı ' dır. Bu değeri en yakın büyüktam sayıya yuvarlarsak 3 bit bizim için yeterliolacaktır. O halde kromozom boyutumuz da 18(3*6) olacaktır. Rasgele bir kromozom üretelim:(1<strong>10</strong> <strong>10</strong>1 111 011 000 001). Şimdi bu kromozomdanturu nasıl elde edeceğiz? Bunun için ikiyöntem vardır. Ama her iki yöntemden önce herbir genin onluk sistemdeki puanını hesaplamakgerekecektir(bunu puan_dizi olarak adlandıralım).Genlerin puan durumu şu şekildedir: (6 5 7 3 0 1).Ve son olarak puan dizisinin bir kopyasını(bunu da kopya_dizi olarak adlandıralım)elde edelim ve bu kopyayı küçüktenbüyüğe doğru sıralayalım: (0 1 3 5 6 7).Yöntem 1: Kopya dizideki her bir elemanı referansalarak, bu elemanın puan_dizideki konumutur için bir şehri temsil edecektir. Budurumda kopya_dizideki 0 elemanının puan_dizidekikonumu 4, kopya_dizideki 1 elemanınınpuan dizideki konumu 5, ... olarak hesaplarsakelde ettiğimiz tur:4-5-3-1-0-2 olacaktır.Yöntem 2: Puan dizideki her bir elemanı referansalarak, bu elemanın kopya_dizideki konumutur için bir şehri temsil edecektir. Bu durumdapuan_dizideki 6 elemanının kopya_dizidekikonumu 4, puan dizideki 5 elemanınınkopya_dizideki konumu 3, ... olarak hesaplarsakelde ettiğimiz tur:4-3-5-2-0-1 olacaktır.Yukarıda detaylarını açıkladığımız her iki turüretme yönteminde de ne hatalı ne de eksik birşehir üretiyoruz. Böylece ikili temsil için tanımlıolan çaprazlama ve mutasyon işleçlerini, herhangibir tamir edici algoritmaya gereksinim duymadankullanabiliyoruz. Yöntemleri Şekil 2'dekigörselleştirmeden inceleyebilirsiniz.