GEZGİN SATICI PROBLEMİ İÇİN BİR MEMETİK ALGORİTMA ÖNERİSİ Engin Sansarcı İ.T.Ü. İşletme Fakültesi, İSTANBUL enginsansarci@gmail.com Abdullah Aktel İ.T.Ü. İşletmeFakültesi, İSTANBUL abdullahaktel@gmail.com Dilay ÇELEBİ İ.T.Ü. İşletmeFakültesi, İSTANBUL celebid@itu.edu.tr ÖZET Demet BAYRAKTAR İ.T.Ü. İşletme Fakültesi, İSTANBUL bayraktarde@itu.edu.tr Gezgin Satıcı Problemi (GSP), verilen belirli sayıda şehrin tümünü en az maliyetle dolaşmayı sağlayan turu belirlemeyi hedefleyen bir eniyileme problemidir. Birçok gerçek hayat probleminin temelini oluşturan Gezgin Satıcı Problemi, NP-zor bir problem olması nedeniyle, özellikle büyük ölçekli problemlerde etkin çözümler elde etmek için sezgisel yaklaşımların kullanımı oldukça yaygındır. Bu çalışmada, düzlemsel gezgin satıcı probleminin çözümü için bir memetik yaklaşım önerisi sunulmaktadır. Önerilen yaklaşımda genetik algoritmalar ile yapay sinir ağları birleştirilerek, genetik algoritma ile yapılan genel arama etkinliğinin, yapay sinir ağları ile yapılan yerel arama ile arttırılması hedeflenmiştir. Bütünleşik sistem, önceden belirlenmiş deney kümesi üzerinde denenmiş ve bulgular işlem zamanı ve çözüm kalitesi açısından incelenmiştir. Anahtar Kelimeler: Düzlemsel Gezgin Satıcı Problemi, Memetik Algoritma, Yapay Sinir Ağları 1. GİRİŞ Gezgin satıcı problemi üzerinde sıkça çalışılan bir kombinatoryal optimizasyon problemidir. Gezgin satıcı probleminin amacı kısaca n tane şehrin her birini yalnızca bir defa ziyaret edip başlangıç noktasına geri dönerek en kısa toplam mesafeyi kat eden turu belirlemektir. Düzlemsel gezgin satıcı probleminde ise bu şehirler iki boyutlu bir düzlem üzerinde dağılmışlardır ve aralarındaki mesafeler Öklid uzaklıkları temel alınarak hesaplanır. Düzlemsel gezgin satıcı problemi, NP-zor bir problem olup, çoğunlukla sezgisel yöntemlerle çözülmeye çalışılan bir problemdir. Önerilen yöntemler çözümü sıfırdan üreten yöntemler olabildiği gibi, herhangi bir başlangıç çözümünü adım adım iyileştiren yöntemler de olabilir. Bu kapsama giren etkili bir çözüm yöntemi de Lin ve Kernighan (1973) ın önerdiği algoritmadır [2]. Referans. Problemin çözümü için çok sayıda farklı yapılarda yapay sinir ağı modelleri bulunmaktadır. Bunlardan biri de, kendi kendini örgütleyen yapay sinir ağlarıdır. Kendi kendini örgütleyen ağlar nöronların arasında hem bir rekabet hem de bir çeşit işbirliğinin olduğu ağlardır. Yazında kendi kendini örgütleyen ağlar yardımıyla düzlemsel gezgin satıcı problemini çözmeyi amaçlayan çalışmalar bulunmaktadır [3]. Bu çalışmalardan biri Masutti ve Castro (2009) tarafından gerçekleştirilmiştir [3]. Bu çalışmalarında yazarlar geleneksel kendi kendini örgütleyen yapay sinir ağlarından farklı bir yapay sinir ağı oluşturmuştur. Bu ağ başlangıçta tek bir nörondan oluşmakta, ve her yinelemede nöronlar klonlanarak ağ büyütülmektedir. Eğer bir nöron şehirlerden hiçbiri için yarışı kazanamazsa (herhangi bir şehre en yakın nöron olamazsa) imha edilmektedir. Farklı sezgisel yöntemlerin bir optimizasyon probleminin çözümünde bir arada kullanılması da yaygın bir şekilde uygulanmaktadır. Örneğin, popülasyon temelli genetik algoritmayla bir
yerel arama yöntemi bir arada kullanılabilmektedir. Bu tip algoritmalara melez genetik algoritma, genetik yerel arama ya da memetik algoritma denilmektedir [1]. Creput ve Koukam (2009) ın çalışmasında, düzlemsel gezgin satıcı problemi için, kendi kendini örgütleyen ağlar ile popülasyon temelli genetik algoritma yaklaşımı birleştirilmiştir [1]. Böylece, arama sürecü boyunca kötü sonuçların elenip iyi sonuçların ödüllendirilmesi genetik algoritma ile sağlanırken, popülasyon içerisindeki bir çözümü temsil eden her bir yapay sinir ağı sürekli bir iyileşme sağlayarak bir çeşit yerel arama gerçekleştirmektedir. Creput ve Koukam (2009) ın çalışmasında kullanılan genetik algoritma her nesilde kötü sonuçların elenmesi ve iyi sonuçların kopyalanmasını içermektedir [1]. Buna karşın, herhangi iki sonucun çapraz eşlemesiyle başka bir sonuç elde edilmesi yöntemi kullanılmamaktadır. Bu çalışmada ise, benzer şekilde bir memetik yaklaşım kullanılacak, ayrıca iki sonucun birleştirilmesiyle elde edilen yeni sonuçlar popülasyona dahil edilecektir. Bu şekilde yapılan çapraz eşleme ve sonuçlar üzerinde rassal değişimler yaratan mutasyon operatörünün algoritmanın başarımını nasıl etkileyeceği analiz edilecektir. Çalışmanın ikinci bölümünde kendi kendini örgütleyen ağların düzlemsel gezgin satıcı probleminin çözümünde kullanılması anlatılmıştır. Üçüncü bölümde kullanılan memetik algoritmanın tasarımı açıklanmıştır. Dördüncü bölümde parametre seçimi, algoritmanın eil51 test problemi üzerinde yapılan uygulamasının sonuçları ve farklı operatörlerin algoritma başarımına etkisi incelenmiştir. Beşinci bölümde ise bu çalışmadan elde edilen sonuçlar ve ileride yapılacak çalışmalar için öneriler sunulmuştur. 2. KENDİ KENDİNİ ÖRGÜTLEYEN AĞLAR Kendi kendini örgütleyen ağlar, gözetimsiz eğitilen yapay sinir ağları sınıfına girer [1]. Gezgin satıcı problemine uygulanan yapay sinir ağı modellerinde genellikle ağ üzerindeki nöronlar şehirlerle aynı iki boyutlu düzlem üzerinde dağılmışlardır. Uygulama temel olarak aşağıdaki evreleri içerir: i) Rekabet: Problemdeki şehir kümesi içerisinden seçilen bir şehir, ağa girdi olarak verilir. Ağdaki nöronlar bu girdiyle eşleşmek için birbirleriyle rekabet ederler. Girdiye en yakın olan nöron kazanan nöron olarak seçilir. ii) İşbirliği: Nöronlar bir çember oluşturacak biçimde birbirleriyle bağlantılıdır. Bağlantılar nöronlar arasında bir komşuluk tanımlar. Rekabet aşamasında kazanan nöron ile komşuluğu içerisinde bulunan diğer nöronlar arasında bir işbirliği vardır. iii) Öğrenme: Kazanan nöron ve işbirliği yaptığı diğer nöronlar girdi olarak verilen şehirle aralarındaki mesafeyle doğru orantılı olarak bu şehre yaklaşırlar [1]. Ağın eğitilmesi, bu aşamaların ardı ardına tekrarlanmasıyla olur. Her hangi bir anda ağdaki nöronların konumlarını ve birbirleriyle bağlantılarını kullanarak geçerli bir çözüm oluşturulabilir. Başlangıçta, n tane şehirden oluşan bir problemin çözümünde, k bir parametre olmak üzere, k x n tane nöron bir çember oluşturacak şekilde birbiriyle bağlantılı hale getirilir ve rastsal bir konuma yerleştirilir. Rastsal bir sırayla, problemdeki n şehrin her biri için yukarıda bahsedilen rekabet, işbirliği ve öğrenme aşamaları uygulanır. Her bir nöron, yalnızca bir şehir için rekabeti kazanabilir.
İşbirliği aşamasında ise, rekabet aşamasında kazanan nöronun en fazla r bağlantı uzağında bulunan nöronlar ele alınır. Kazanan nöron ve komşuluğundaki nöronlar belirli bir öğrenme hızıyla öğrenme aşamasından geçerler. Öğrenme formülü (1) ve (2) numaralı denklemlerde gösterilmiştir [1]. Bu denklemlerde öğrenme hızını, w i,t i nöronunun t anındaki konumunu, girdi olarak kullanılan şehrin konumu, d(i,i*) ise i nöronunun kazanan nöronla bağlantı uzaklığını gösterir. w * 2 ( d ( i, i ) / r) i / e (1) * i, t 1 ( 1 i ) wi, t in (2) 3. ALGORİTMA TASARIMI Bu çalışmada popülasyon temelli genetik algoritma ile kendi kendini örgütleyen yapay sinir ağları birlikte ele alınıp bir memetik algoritma oluşturulmuştur. Popülasyon sayısı (POP) kadar çözüm rastsal olarak yaratıldıktan sonra nesil sayısı (GEN) kadar nesil boyunca her bir nesilde, öncelikle eğitim sayısı (L) kadar her bir çözüm eğitilir, ardından popülasyonun yenilenme oranı (p) kadar yeni çözüm yaratılıp aynı sayıda kötü çözümle değiştirilir. Son olarak da her bir çözüm mutasyon olasılığı (m) kadar bir olasılıkla mutasyona uğratılır. Algoritmanın aşamaları aşağıda özetlenmiştir. Adım I: Başlangıç Çözümlerinin Üretilmesi POP defa k x n defa o g tane şehir rastsal olarak seçilir o Konumu bu şehirlerin ağırlık merkezi olan bir nöron yaratılır. k x n tane nöronun ağırlık merkezi bulunur Nöronlar, ağırlık merkezi etrafında saat yönünde çember oluşturacak şekilde sıralanır. Adım II : GEN defa Öğrenme Aşaması: L defa o Popülasyondaki her bir çözüm için Şehirler rastsal olarak sıralanır Her bir şehir için Herhangi bir şehirle eşleşmemiş en yakındaki nöron ve en fazla r bağlantı uzağındaki tüm nöronlar için Şekil 1 deki formül uygulanır. En yakındaki nöron bu şehirle eşleştirilir. Evrim Aşaması: p x POP defa (0 < p < 1) o s x POP tane çözüm rassal olarak seçilir, en iyi çözüm alınır. Bu çözüme birinci ebeveyn denir. o s x POP tane çözüm rassal olarak seçilir, en iyi çözüm alınır. Bu çözüme ikinci ebeveyn denir.
o Birinci ebeveynin aynısı olan bir çözüm yaratılır. Bu çözüm ikinci ebeveynin nöronlarıyla ve öğrenme hızı = 0.5 olacak şekilde eğitilir. o s x POP tane çözüm rastsal olarak seçilir, en kötü çözüm popülasyondan çıkartılır. Mutasyon Aşaması: Eğer k > 1 ise, popülasyondaki her bir çözüm için; o m olasılıkla Herhangi bir şehirle eşleşmemiş nöronlar arasından rastsal olarak bir tanesi seçilir, ve herhangi bağlantılı iki nöron arasında yeni bir nöron yaratılır. Parametre Düzeltme: r = r x c İlk adımda her bir başlangıç çözümü rastsal olarak seçilmiş g adet şehrin ağırlık merkezi hesaplanarak yaratılır. Bunun amacı nöronların şehirlerin ağırlık merkezi etrafında dağılmalarını sağlamaktır. g parametresi ne kadar büyük seçilirse, nöronlar o kadar merkeze ve birbirine yakın olacaklardır. Öğrenme aşamasının tasarımında Creput ve Koukam (2009) ın çalışmasından faydalanılmıştır [1]. Fakat bu çalışmada, Creput ve Koukam (2009) ın çalışmasındaki öğrenme aşamasının aksine, sonuç oluşturma ve iyileştirme şeklinde iki farklı öğrenme yöntemi yoktur. Çalışmadaki amacımız çapraz eşleme ve mutasyon operatörlerinin başarıma etkisini göstermek olduğu için öğrenme aşamasında yalnızca standart öğrenme yöntemi kullanılmış, değişiklikler uygulanmamıştır. 4. UYGULAMA Bölüm 3 te anlatılan algoritma POP = 100 ve GEN = 100 olacak şekilde kodlanmıştır. Diğer parametreler için 3 farklı değer seçilmiş ve eil51 test problemi üzerinde çalıştırılmıştır. Bu test problemi, TSPLIB problem kütüphanesindeki test problemlerinden biridir [4]. Tüm testler 2.17 GHz hızında işlemci ve 3GB kapasitede belleğe sahip aynı bilgisayar üzerinde ve aynı tohumdan üretilmiş rassal sayılarla yapılmıştır. Tüm parametreler bu üç değerden ortadaki değere eşitlendiğinde bulunan en iyi sonuç 430.2 dir ve bu problemin bilinen optimum sonucu 426 dır. Parametreleri, diğerlerini sabit tutarak, teker teker değiştirdiğimizde elde edilen sonuçlar ve farklı parametre değerleri Tablo 1 de verilmiştir. Sembollerin açıklamaları ise Tablo 2 de verilmiştir. Tablo 1: Parametre Değerleri ve Sonuçlar Düşük İçin Sonuçlar Sembol Düşük Orta Yüksek Yüksek İçin Sonuçlar @ 0.05 0.1 0.2 442.82 431.17 s 0.1 0.25 0.5 432.8 438.29 r 5 10 20 441.12 429.48 c 0.9 0.95 0.99 438.59 428.87 k 1 2 3 436.66 440.56 m 0.005 0.01 0.02 431.03 436.09 l 1 2 3 438.61 439.6 p 0.1 0.25 0.5 442.82 430.86 g 5 10 20 441.48 437.15
Tablo 2 : Sembollerin Açıklamaları Sembol Açıklama @ Öğrenme Hızı s Seçim Oranı r Komşuluk Derecesi c Komşuluk Daraltma Oranı k Nöron Çarpanı m Mutasyon Oranı L Öğrenme Sayısı p Popülasyon Yenilenme Oranı g Başlangıç Sonucu Yaratma Parametresi Yapılan 19 test sonucunda bulunan en iyi sonuç 428.87 dir ve işlem süresi 240 sn.dir. Temel olarak seçilen bu parametre kombinasyonu ile yapılan deneyler sonucu öğrenme, evrim ve mutasyon operatörlerinin başarıma katkısı Tablo 3 de gösterildiği şekilde hesaplanmıştır. 5. SONUÇ Tablo 3: Evrim ve Mutasyon Aşamalarının Sonuca Katkısı İşlem Yöntem Sonuç Süresi (sn) Öğrenme 436.9 196 Öğrenme + Mutasyon 437.71 196 Öğrenme + Evrim 436.08 239 Öğrenme + Evrim + Mutasyon 428.87 240 Bu çalışmada düzlemsel gezgin satıcı problemi için bir memetik algoritma oluşturulmuştur. Bu amaçla popülasyon temelli genetik algoritma ile kendi kendini örgütleyen yapay sinir ağları birlikte ele alınmıştır. Algoritmanın temel amacı, popülasyon doğal seleksiyona benzer bir şekilde evrim geçirirken popülasyonu oluşturan ve her biri kendi kendini örgütleyen bir yapay sinir ağı olan çözümlerin yerel aramaya benzer şekilde zaman içerisinde farklılaşmasına izin vermektir. Algoritmanın tasarımında Creput ve Koukam (2009) ın çalışmasından esinlenilmiştir [1]. Farklı olarak çapraz eşleme operatörü kullanılmıştır. Bu sayede iki farklı çözüm kullanılarak üçüncü bir çözüm oluşturulmuş ve popülasyona katılmıştır. Yeni bir çözüm üretme yöntemi kısaca bir çözümün nöronlarının diğer çözümün nöronlarıyla eğitilmesi şeklindedir. Algoritma eil51 test problemine 19 farklı parametre birleşimi için uygulanmıştır. Bulunan en iyi sonuç optimum sonuçtan %0.67 oranında uzaktır. En iyi sonucu veren parametre birleşimi bir defa da evrim aşaması, yani çapraz eşleme operatörü olmaksızın, yalnızca öğrenme ve mutasyon aşamalarıyla çalıştırılmış ve optimumdan %2.74 oranında uzak bir sonuç elde edilmiştir. Bununla birlikte, algoritmanın çalışma süresi, evrim aşaması eklendiğinde 196 sn.den 240 sn.ye çıkmaktadır. Çalışma süresi 196 sn. ile sınırlandığında dahi, evrim aşamasının algoritmaya eklenmesi sonucu %0.37 oranında iyileştirmektedir.
Genetik algoritmadaki çapraz eşleme operatörünün temel dayanağı, iyi çözümlerin bazı ortak özelliklerinin olduğu ve bu nedenle birden fazla iyi çözüm yardımıyla daha iyi bir çözüm oluşturulabileceği düşüncesidir. Bu çalışmada kullanılan test problemi üzerinde yapılan testler bu operatörün algoritmanın başarımını artıracağı görüşünü artırmıştır. Bu eğilimin daha kapsamlı sınanması için ileriki çalışmalarda test kümesinin genişletilmesi ve farklı çapraz eşleme yöntemlerinin denenmesi amaçlanmaktadır. 6. KAYNAKÇA [1] J. Creput, A. Koukam, 2009, A memetic neural network for the Euclidean traveling salesman problem, Neurocomputing 72 / 1250 1260 [2] S. Lin, B. W. Kernighan, 1973, An effective heuristic algorithm for the traveling - salesman problem, Oper. Res., 21 / 498 516. [3] T. A. S. Masutti, L. N. Castro, 2009, Neuro-immune approach to solve routing problems, Neurocomputing, 72 / 2189-2197 [4] G. Reinelt, 1991, TSPLIB A traveling salesman problem library, ORSA J. Comput. 3 / 376 384.