• Sonuç bulunamadı

Gezgin Satıcı Problemi

4. GERÇEK UYGULAMALAR

4.1. Gezgin Satıcı Problemi

Helsgaun (2000)’e göre gezgin satıcı problemi, kombinasyonel optimizasyon problemleri içinde en çok kullanılanıdır. Gezgin satıcı problemi, bir satıcının n adet şehrin her birini, her şehre bir kere uğramak üzere, dolaşması ve tekrar başladığı şehre dönmesi şartına dayalı bir optimizasyon problemidir. Problemde amaç en kısa yolu satıcıya sunabilmektir. Hesaplama karmaşıklığı teorisine göre NP (Non-Polinomal) tam zorlukta bir optimizasyon problemidir. Bunun anlamı bu problemin her durumu için etkin bir şekilde çalışacak bir algoritmanın olmadığı ve eklenecek her şehir için en kötü durumda hesaplama süresinin üstel olarak artacağıdır. Daha açık bir ifadeyle 100 şehirlik bir gezgin satıcı probleminin çözümü, her olasılık tek tek denenecek olursa, yıllar alabilir. Problemin çözümü planlama, taşımacılık, DNA sıralama ve hatta mikroçip tasarımı gibi başka alanlarda da kullanılmaktadır. Problemin çözümü için sezgisel ve meta sezgisel yöntemler kullanılmıştır. Problem için bir çözüm bulunduğunda, satıcının tüm şehirleri bu plan üzerinden gezeceği, planın hiçbir değişime uğramayacağı varsayılır. Fakat gerçek hayatta durum bu kadar basit olmayabilir. Satıcı ilk noktadan yolculuğa başladıktan sonra bazı satıcılara giden yollar kapanabilir, bazı noktalara firmanın başka bir satıcısının gitmesi gerekebilir veya başka bir nedenle gideceği şehir sayısı azalabilir. Bu durumda tüm yol planının yeniden yapılması gerekir. Fakat bu değişiklikler sıkça karşılaşılan bir durumsa her durum için yeniden bir plan yapılması çok zaman alacağı için toplam seyahat süresini arttıracaktır. İşte bu noktada ―genetik transfer öğrenme‖, ―sıkça değişen seyahat noktaları‖ problemi için kullanılabilir.

Gezgin satıcı problemleri, seyahat süresinin sabit olup olmamasına göre simetrik ve asimetrik gezgin satıcı problemi olmak üzere ikiye ayrılabilir. Simetrik gezgin satıcı problemlerinde, iki şehir arasındaki mesafe sabittir. Örneğin A şehrinden B şehrine bir araç 1 saatte gidiyorsa, aynı şekilde B şehrinden kalkan bir araç A şehrinde 1 saatte

matematiksel temellere dayanan sınırlandırılmış "lagrangean relaxation‖ yaklaşımı ile asimetrik gezgin satıcı problemi için getirdikleri çözüm yöntemi ve Grötschel ve Holland (1991)’ın düzlem kesme prosedürü ile 1000 şehre kadar olan simetrik gezgin satıcı problemleri için geliştirdikleri yöntemleri örnek olarak gösterilebilir. Gezgin satıcı problemlerini çözmek için geliştirilen bir diğer yaklaşım ise sezgisel veya olasılıksal yaklaşımlardır. Tam metotlar, gezgin satıcı probleminin sadece küçük bir kısmını çözebildiği için bu yaklaşıma ihtiyaç duyulmuştur. Tabu arama (Glover, 1990), yapay sinir ağları (Hopfield, 1985) ve elbette genetik algoritmalar (Jog ve ark., 1989; Grefenstette ve ark.,1985; Nguyen ve ark., 2007) bu yaklaşım içinde gezgin satıcı problemi için çözüm olarak kullanılan yöntemler arasında sayılabilir.

Transfer öğrenme klasik gezgin satıcı problemi için yeni bir yöntem önermez, sadece değişen durumlar için mevcut yöntemlerle yeniden bir gezinti planı yapmak yerine, eski planın kullanılabilen kısımlarını genetik transfer öğrenme ile transfer ederek yeni planı geleneksel yöntemlere göre çok daha hızlı ve efektif bir şekilde oluşturmayı amaçlar. Bu durumu açıklamak üzere 100 şehirlik bir gezgin satıcı problemi üzerinden, genetik algoritmaların ve genetik transfer öğrenmenin performansları değerlendirilmiştir. Bunun için 100 şehirlik problem kaynak görev olmak üzere 3 farklı hedef gezgin satıcı problemi oluşturulmuştur. Hedef görevler, kaynak görevden rastgele şehirler silinerek oluşturulmuş, farklı şehir sayısı içeren görevlerdir. Gezgin satıcı probleminde uygunluk fonksiyonu olarak değişik ölçüler kullanılmıştır. Bunlardan biri olan Manhattan uzaklığı şehirlerin x ve y koordinatları arasındaki farkı toplamaktadır. Maksimum metrik ise x ve y koordinatlarından büyük olanı toplayarak gitmektedir. Bu çalışmada ise 4.1’deki öklit uzaklığa dayanan eşitlik, uygunluk fonksiyonu olarak kullanılmıştır. 2 0 2 0 1 1 2 1 2 1) ( ) ( ) ( ) (x x y y x x y y D n n n i i i i i       

    (4.1)

Eşitlik 4.1’de başlangıç şehrinden başlayarak, son şehre kadar kat edilen uzaklığın üzerine son şehirden başlangıç şehrine kat edilen uzaklık eklenerek uygunluk fonksiyonu hesaplanır. Test’i gerçekleştirmek üzere kaynak görev olarak, 100 şehirden oluşan problem, 100 bireyli popülasyon ile 100 nesilde oluşturacak şekilde seçilmiştir. Kaynak görevin her bir neslinden alınan en iyi, ortanca ve en kötü bireylerin saklanmasıyla çözüm havuzu oluşturulmuştur. Bu durumda çözüm havuzu 100 x 3 = 300 çözümden oluşmaktadır. Hedef görev olarak üç farklı görev seçilmiştir. Bu görevler 100 şehirli kaynak görevden rastgele, şehirler silinerek elde edilmiştir. Hedef görevler sırasıyla 80, 60 ve 40 şehirden oluşmaktadır. Bu noktada çözüm havuzundaki çözümler, nokta sayısı az olan hedef görevler için direk çözüm olarak kullanılamaz. Bu çözümlerin hedef görevde kullanılabilmesi için bir ön işleme tabi tutularak, hedef görevde bulunmayan şehirlerin ayıklanması gerekir. Bu işlem için Algoritma 4.1 kullanılmıştır.

For i=0 to çözüm_havuzu_boyutu do begin

Çözüm havuzundan i. Çözümü al S’e ata j=0;

For k=0 to S’in_uzunluğu do Begin

S’in içindeki k. Şehri oku ve R’ye ata If hedef görev R şehrini içermiyorsa then S’den R şehrini sil

End

S’in uygunluğunu hedef görevin uygunluk fonksiyonunu kullanarak hesapla End

Çözüm havuzunu uygunluğuna göre sırala

ġekil 4.1. 80 şehir için genetik algoritma, genetik transfer performans karşılaştırması

ġekil 4.3. 40 şehir için genetik algoritma, genetik transfer performans karşılaştırması

Yukarıdaki grafikler Çizelge 4.1’de özetlenmiştir. Grafiklere bakıldığında genetik transfer öğrenmenin özellikle ilk iterasyonlarda yüksek performans gösterdiği fakat ilerleyen iterasyonlarda klasik genetik algoritmanın aradaki farkı kapattığı görülmüştür.

Çizelge 4.1. Klasik genetik algoritmaların bulduğu sonuçların genetik transfer öğrenme ile karşılaştırılması Hedef Görev Nesil 1 Nesil 10 Nesil 20 Nesil 30 Nesil 40 Nesil 50 Nesil 60 Nesil 70 Nesil 80 Nesil 90 Nesil 100 80 şehir 4.29 2.97 2.34 1.96 1.79 1.67 1 57 1.46 1.39 1.33 1.30 60 şehir 3.78 2.60 1.97 1.65 1.42 1.28 1.22 1.16 1.13 1.10 1.11 40 şehir 2.74 1.87 1.44 1.16 1.11 1.07 1.04 1.03 1.02 1.02 1.01

Çizelge 4.1, seçilen nesildeki genetik algoritmaların hesapladığı toplam mesafenin genetik transfer öğrenme ile hesaplanan toplam mesafeye bölünmesi sonucu elde edilmiştir yani bu değerler genetik algoritmanın, genetik transfere göre ne kadar kötü sonuç bulduğunu göstermektedir. Tablonun üst satırındaki numaralar ölçümlerin

Benzer Belgeler