DİNAMİK GEZGİN SATICI PROBLEMİNİN ÇÖZÜMÜ İÇİN BİR ENİYİLEME KÜTÜPHANESİNİN TASARIMI VE GÖRSEL YAZILIM GELİŞTİRME ORTAMI İLE BİRLİKTE GERÇEKLEŞTİRİMİ

Save this PDF as:
 WORD  PNG  TXT  JPG

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "DİNAMİK GEZGİN SATICI PROBLEMİNİN ÇÖZÜMÜ İÇİN BİR ENİYİLEME KÜTÜPHANESİNİN TASARIMI VE GÖRSEL YAZILIM GELİŞTİRME ORTAMI İLE BİRLİKTE GERÇEKLEŞTİRİMİ"

Transkript

1 EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) DİNAMİK GEZGİN SATICI PROBLEMİNİN ÇÖZÜMÜ İÇİN BİR ENİYİLEME KÜTÜPHANESİNİN TASARIMI VE GÖRSEL YAZILIM GELİŞTİRME ORTAMI İLE BİRLİKTE GERÇEKLEŞTİRİMİ Barış ÖZKAN Bilgisayar Mühendisliği Anabilim Dalı Bilim Dalı Kodu : Sunuş Tarihi : Tez Danışmanı : Yrd. Doç. Dr. Aybars UĞUR BORNOVA İZMİR

2 II

3 III Barış ÖZKAN tarafından YÜKSEK LİSANS TEZİ olarak sunulan Dinamik Gezgin Satıcı Probleminin Çözümü İçin Bir Eniyileme Kütüphanesinin Tasarımı ve Görsel Yazılım Geliştirme Ortamı ile Birlikte Gerçekleştirimi başlıklı bu çalışma E.Ü. Fen Bilimleri Enstitüsü Eğitim ve Öğretim Yönergesi nin ilgili hükümleri uyarınca tarafımızdan değerlendirilerek savunmaya değer bulunmuş ve tarihinde yapılan tez savunma sınavında aday oybirliği/oyçokluğu ile başarılı bulunmuştur. Jüri Üyeleri: İmza: Jüri Başkanı : Yrd. Doç. Dr. Aybars UĞUR... Raportör Üye : Yrd. Doç. Dr. Aylin KANTARCI... Üye : Yrd. Doç. Dr. Cengiz GÜNGÖR...

4 IV

5 V ÖZET DİNAMİK GEZGİN SATICI PROBLEMİNİN ÇÖZÜMÜ İÇİN BİR ENİYİLEME KÜTÜPHANESİNİN TASARIMI VE GÖRSEL YAZILIM GELİŞTİRME ORTAMI İLE BİRLİKTE GERÇEKLEŞTİRİMİ ÖZKAN, Barış Yüksek Lisans Tezi, Fen Bilimleri Enstitüsü Tez Yöneticisi: Yrd. Doç. Dr. Aybars UĞUR Ağustos 2008, 106 sayfa Gezgin Satıcı Problemi, verilen belirli sayıda şehrin tümünü en az maliyetle dolaşan turu bulmayı amaçlayan bir kombinasyonel eniyileme problemidir. Problem, iş planlama ve rota planlama gibi birçok pratik uygulamaya uyarlanabilir. Ancak GSP ile modellenebilen problemlerin büyük çoğunluğu zamanla değişime uğrayabilen problemlerdir. Bu nedenle de dinamik GSP ile modellenmeleri gerekmektedir. Bu tez çalışmasında dinamik GSP için Java ortamında genetik algoritmaları ve yerel arama tekniklerini (2-opt, 3-opt) kullanan bir eniyileme kütüphanesi geliştirilmiştir. Ayrıca kütüphanenin kullanımını kolaylaştıran web tabanlı bir görsel yazılım geliştirme ortamı oluşturulmuştur. Bu uygulama, kullanıcıların ağ üzerinden, kütüphaneyi kullanan programlar üretmelerine olanak tanır. Kullanıcılar kod üretmek yerine uygulamayı kullanarak problemlerine doğrudan çözüm de üretebilirler. Anahtar sözcükler: Eniyileme, Dinamik Gezgin Satıcı Problemi, Yerel arama sezgileri, Genetik algoritmalar, Web tabanlı yazılım geliştirme.

6 VI

7 VII ABSTRACT DESIGN AND IMPLEMENTATION OF AN OPTIMIZATION LIBRARY WITH VISUAL SOFTWARE DEVELOPMENT ENVIRONMENT FOR THE SOLUTION OF DYNAMIC TRAVELING SALESMAN PROBLEM ÖZKAN, Barış MSc. Computer Engineering Supervisor: Asst. Prof. Dr. Aybars UĞUR August 2008, 106 pages Traveling Salesman Problem, which aims to find optimal total routing cost for a given collection of cities, is a combinatorial optimization problem. Problem can be adapted to many practical applications such as route planning and job scheduling. But most of the problems which can be modelled with TSP are time changeable problems. So these problems are supposed to be modelled with dynamic TSP. In this thesis, an optimization library, which uses genetic algorithms and local search heuristics (2-opt, 3-opt), is developed in Java platform for solving dynamic TSP. In addition to this, an interactive web based visual software development platform, which makes the usage of that library easier, is implemented. This application gives users the opportunity of creating software programs which use the library. Instead of generating software codes, users may directly solve their problems by creating their maps and using the application. Keywords: Optimization, Dynamic Traveling Salesman Problem, Local search heuristics, Genetic algorithms, Web based software development.

8 VIII

9 IX TEŞEKKÜR Öncelikle bana yapay zeka ve bilgisayar grafiklerini sevdirerek bu tez konusu üzerinde çalışmamı sağlayan, tez projesi boyunca da gerçekleştirdiğim çalışmaların her aşamasında verdiği fikirler ve sağladığı kaynaklarla desteğini benden esirgemeyen tez danışmanın Yrd. Doç Dr. Aybars UĞUR a teşekkürlerimi sunarım. Ayrıca lisans eğitimimden bu yana gerçekleştirdiğim birçok çalışmada karşılıklı fikir alışverişinde bulunduğum Utku CEVRE başta olmak üzere Yapay Zeka ve Bilgisayar Grafikleri grubundaki tüm arkadaşlarıma teşekkür ederim. Bilimsel çalışmayı özendirerek verdiği manevi desteğin yanında yüksek lisans eğitimim süresince sağladığı burs ile maddi açıdan da bana destek olan ve bu noktaya gelmemde çok büyük katkısı bulunan Türkiye Bilimsel ve Teknolojik Araştırma Kurumu na (TÜBİTAK) da teşekkürü bir borç bilirim. Son olarak da beni yetiştirerek bugünlere gelmemi sağlayan ve yoğun çalışma dönemlerinde bile hiçbir özveriden kaçınmadan bana rahat bir çalışma ortamı sunan aileme sonsuz teşekkürler.

10 X

11 XI İÇİNDEKİLER Sayfa ÖZET... V ABSTRACT...VII TEŞEKKÜR... IX İÇİNDEKİLER... XI ŞEKİLLER DİZİNİ... XIV ÇİZELGELER DİZİNİ...XV KISALTMALAR... XVI 1. GİRİŞ GEZGİN SATICI PROBLEMİ Gezgin Satıcı Problemi Nedir? Gezgin Satıcı Probleminin Önemi Gezgin Satıcı Probleminin Çözüm Yöntemleri Gezgin Satıcı Probleminin Uygulama Alanları Dinamik Gezgin Satıcı Problemi Dinamik gezgin satıcı problemi nedir? Dinamik gezgin satıcı probleminin önemi Dinamik gezgin satıcı probleminin çözüm yöntemleri Dinamik gezgin satıcı probleminin uygulama alanları ENİYİLEME YÖNTEMLERİ Eniyileme Yöntemlerinin Sınıflandırılması Genetik Algoritmalar Tanım ve kapsam Tarihçe Temel kavramlar... 18

12 XII Genetik algoritma süreci Genetik algoritmaların parametreleri Genetik algoritmaların uygulama alanları Genetik algoritmaların avantajları ve dezavantajları Hazır genetik algoritma paketleri ve kütüphaneleri Karınca Kolonisi Algoritmaları Tanım Tarihçe Gerçek karınca kolonisinin davranışı Temel karınca kolonisi algoritmaları Karınca kolonisi algoritmalarının uygulama alanları k-opt opt opt ÖNCEKİ ÇALIŞMALAR Gezgin Satıcı Problemi ile İlgili Çalışmalar Dinamik Gezgin Satıcı Problemi ile İlgili Çalışmalar DİNAMİK GSP KÜTÜPHANESİ Kullanılan Yöntem ve Metodolojiler Tasarım ve Gerçekleştirim DENEYSEL SONUÇLAR GÖRSEL YAZILIM GELİŞTİRME ORTAMI Kullanılan Yöntem ve Metodolojiler Tasarım ve Gerçekleştirim Görsel Yazılım Geliştirme Ortamının Kullanımı Görsel Yazılım Geliştirme Ortamının Yararları SONUÇ...101

13 XIII KAYNAKLAR DİZİNİ ÖZGEÇMİŞ

14 XIV ŞEKİLLER DİZİNİ Sayfa Şekil 2.1: Türkiye nin 81 ili için GSP örneği...4 Şekil 3.1: Permutasyon kodlamada çaprazlama örneği...25 Şekil 3.2: Permutasyon kodlamada mutasyon örneği...26 Şekil 3.3: Engele rağmen en kısa yolu izleyen karınca kolonisi...38 Şekil 3.4: 2-opt yerel arama tekniği (Özkan vd., 2008)...43 Şekil 3.5: 3-opt yerel arama tekniği...47 Şekil 4.1: GSX çaprazlama yöntemi (Sengoku and Yoshiara, 1998)...50 Şekil 5.1: Dinamik Şehir Ekleme Olumlu Sonuç...61 Şekil 5.2: Dinamik Şehir Ekleme Olumsuz Sonuç - Düzeltilmesi...61 Şekil 5.3: Dinamik Şehir Silme Olumlu Sonuç...62 Şekil 5.4: Dinamik GSP kütüphanesinin sınıf diyagramı...63 Şekil 6.1: En iyi tur uzunluğunun nesiller boyunca gelişimi...69 Şekil 6.2: 2-opt oranının eniyileme üzerindeki etkisi...71 Şekil 6.3: 2-opt oranının tepki süresi üzerindeki etkisi...74 Şekil 7.1: Görsel yazılım geliştirme ortamının sınıf diyagramı...80 Şekil 7.2: Hazır harita yükleme...84 Şekil 7.3: Oluşturulan haritayı kaydetme...85 Şekil 7.4: KroA150 için üretilen çözüm örneği...91 Şekil 7.5: Mevcut harita ve parametreleri içeren Java kodu oluşturma...92 Şekil 7.6: İngilizce Dil Seçeneği - kroa100 için üretilen çözüm örneği.98

15 XV ÇİZELGELER DİZİNİ Sayfa Tablo 3.1: Rulet Tekerleği ve Sıralı Seçilimin karşılaştırılması Tablo 3.2: Genetik algoritmalar için önerilen parametre değerleri (Karaboğa, 2004) Tablo 6.1: TSPLIB örnekleri için tamsayı modunda bulunan sonuçlar.. 67 Tablo 6.3: 50 topluluk büyüklüğü için algoritma stabil halde değilken bulunan ortalama tepki süreleri Tablo 6.4: 100 topluluk büyüklüğü için algoritma stabil halde değilken bulunan ortalama tepki süreleri Tablo 6.5: Dinamik ekleme işlemi için algoritma stabil haldeyken bulunan ortalama tepki süreleri Tablo 6.6: Dinamik silme işlemi için algoritma stabil haldeyken bulunan ortalama tepki süreleri Tablo 7.1: Düğmelerin İngilizce dil seçeneğindeki karşılıkları Tablo 7.2: Diğer bileşenlerin İngilizce dil seçeneğindeki karşılıkları... 97

16 XVI KISALTMALAR API : Application Programming Interface CXO : Changing Crossover Operators DGSP : Dinamik Gezgin Satıcı Problemi DTSP : Dynamic Traveling Salesman Problem GA : Genetic Algorithms GAUL : Genetic Algorithms Utility Library GSP : Gezgin Satıcı Problemi GSX : Greedy Subtour Crossover JAGA : Java API for Genetic Algorithms JGAP : Java Genetic Algorithms Package JVM : Java Virtual Machine NP : Non-deterministic Polynomial TSP : Traveling Salesman Problem WWW: World Wide Web

17 1 1. GİRİŞ Gezgin Satıcı Problemi (Traveling Salesman Problem) veya kısaca GSP (TSP), aralarındaki uzaklıklar bilinen belirli sayıda noktanın (şehir, parça veya düğüm gibi) her birisinden yalnızca bir kez geçerek başlangıç noktasına dönen en kısa veya en az maliyetli turun bulunmasını hedefleyen bir problemdir. GSP, özellikle bilgisayarcılar ve matematikçiler arasında çok bilinen ve yoğun bir şekilde üzerinde çalışma ve araştırmalar yapılan bir eniyileme problemidir. Problemin üzerinde yoğun olarak çalışılmasının nedenleri kolay anlaşılan bir problem olması ve rota planlama ya da baskılı devre kartlarındaki delgi işlemi sırasının belirlenmesi gibi gerçek dünyadaki birçok pratik uygulamaya uyarlanabilir olmasıdır. Üzerinde yoğun olarak çalışılması, problemi eniyileme yöntemleri için ideal bir test ortamı haline de getirmiştir. Problemin çözümüne ilişkin, Genetik Algoritmalar ve Karınca Kolonisi Algoritmaları gibi çeşitli yöntemler kullanılarak birçok çalışma yapılmıştır ve günümüzde GSP için çözüm üreten web tabanlı uygulamalar bulunmaktadır. Ancak GSP benzeri gerçek dünya problemlerinin büyük çoğunluğu zamana bağlı olarak değişime uğrayan problemlerdir. Noktalar arasındaki maliyet değerlerinin, dolaşılacak noktaların sayılarının ve konumlarının zamanla değiştiği bu tip problemler Dinamik Gezgin Satıcı Problemleri olarak adlandırılmaktadır ve literatürde bu konuda yapılmış çalışma sayısı oldukça azdır. GSP benzeri problemlerin çoğu, zamanla değişime uğrayan dinamik problemler oldukları halde bu alanda az sayıda çalışma bulunmasının en

18 2 önemli nedeni dinamik gezgin satıcı probleminin karakteristik özelliklerinden dolayı GSP den daha zor bir problem olmasıdır. Bu tez projesinin amacı dinamik gezgin satıcı probleminin çözümü için bir eniyileme kütüphanesinin ve bu kütüphanenin kullanımına olanak tanıyan görsel yazılım geliştirme ortamının oluşturulmasıdır. Bu amaçla gezgin satıcı problemi ve dinamik gezgin satıcı problemi ile temeli bu problemlere dayanan pratik uygulamalara çözüm üretebilecek bir eniyileme algoritması tasarlanmıştır. Tasarlanan algoritma bir global arama yöntemi olan genetik algoritmalar ile yerel arama teknikleri olan 2-opt ve 3-opt un bir arada kullanıldıkları melez bir eniyileme algoritmasıdır. Bu eniyileme algoritması Java ortamında nesneye dayalı tasarım ve programlama yaklaşımları kullanılarak bir yazılım kütüphanesine dönüştürülmüştür. Ayrıca kütüphanenin kullanımını kolaylaştırmak için web tabanlı bir görsel yazılım geliştirme ortamı da oluşturulmuştur. Bu uygulama, kullanıcıların ve uygulama geliştiricilerin ağ üzerinden tek satır bile kod yazmadan sadece görsel arayüzü kullanarak, kütüphaneyi kullanan programlar üretmelerine olanak tanır. Bunun yanı sıra isteyen kullanıcılar kod üretmek yerine uygulamanın görsel arayüzünü kullanarak problemlerine ilişkin haritayı oluşturup doğrudan çözüm de üretebilirler. Çalışmanın ikinci bölümünde gezgin satıcı ve dinamik gezgin satıcı problemleri hakkında bilgiler verilmiş ve bu problemlerin önemlerine değinilmiştir. Üçüncü bölümde eniyileme yöntemlerinin sınıflandırılmasından söz edilmiş ve dinamik gezgin satıcı probleminin çözümünde kullanılan eniyileme yöntemlerinden genetik algoritmalar, karınca kolonisi algoritmaları, 2-opt ve 3-opt anlatılmıştır. Dördüncü

19 3 bölümde ise GSP ve dinamik GSP ile ilgili önceki yıllarda yapılmış bazı önemli çalışmalara yer verilmiştir. Beşinci bölümde tez projesi kapsamında oluşturulan dinamik gezgin satıcı problemi kütüphanesi anlatılmış, altıncı bölümde ise geliştirilen uygulamadan elde edilen deneysel sonuçlar sunulmuş ve bu sonuçlar, geçmiş yıllarda yapılan çalışmalarda elde edilen sonuçlarla karşılaştırılarak değerlendirilmiştir. Yedinci bölümde web tabanlı görsel yazılım geliştirme ortamı anlatılmış, uygulamanın kullanımına ilişkin bilgilere ve ekran görüntülerine yer verilmiştir. Son bölümde ise tez çalışmasının değerlendirmesi yapılarak, çalışmadan elde edilen sonuçlar anlatılmıştır. Yüksek Lisans Eğitimi ve Tez Kapsamında Yapılan Yayınlar 1. Cevre, U., Özkan, B. ve Uğur, A., Gezgin satıcı probleminin genetik algoritmalarla eniyilemesi ve etkileşimli olarak Internet üzerinde görselleştirilmesi, INET-TR 2007, Bildiri No: 17, Bilkent Üniversitesi, Ankara, 8-10 Kasım Özkan, B., Cevre, U. ve Uğur,A., Melez bir eniyileme yöntemi ile rota planlama, Akademik Bilişim 2008, Bildiri No: 44, Çanakkale 18 Mart Üniversitesi, Çanakkale, 30 Ocak 1 Şubat Gazi Üniversitesi Mühendislik Dergisi için hazırlanan Gezgin Satıcı Problemini Melez Bir Eniyileme Yöntemi ile Çözen Web Tabanlı Etkileşimli Bir Simülasyon Aracı Geliştirilmesi başlıklı yayın çalışması ise hakemler tarafından önerilen düzeltmelerin gerçekleştirilmesi aşamasındadır.

20 4 2. GEZGİN SATICI PROBLEMİ 2.1 Gezgin Satıcı Problemi Nedir? Gezgin Satıcı Problemi (GSP), aralarındaki uzaklıklar bilinen belirli sayıda noktanın (şehir, parça veya düğüm gibi) her birisinden yalnızca bir kez geçerek başlangıç noktasına dönen en kısa veya en az maliyetli turun bulunmasını hedefleyen bir problemdir (Özkan vd., 2008). Burada bahsedilen maliyet değeri uzaklık, zaman ya da para gibi unsurlardan biri olabilir. Çizge teorisi içinde ise GSP, Verilen bir ağırlıklı çizgede (düğümler yani köşeler şehirleri; kenarlar ise şehirlerin arasındaki yolları göstermek; ağırlıklar da yolun maliyeti veya uzunluğu olmak üzere), en düşük maliyetli Hamilton Çevriminin bulunması şeklinde tanımlanabilir (Özkan vd., 2008). Bu tanımların daha iyi anlaşılabilmesi için Türkiye nin 81 ilini karayolu ile dolaşan simetrik GSP ve çözümüne ilişkin ekran görüntüsüne Şekil 2.1 de yer verilmiştir. Şekil 2.1: Türkiye nin 81 ili için GSP örneği

21 5 Şekil 2.1 deki ekran görüntüsü tez projesi kapsamında yapılan ön çalışmalar sırasında geliştirilen bir uygulamadan alınmıştır. İlk kez 1800 lü yıllarda ortaya atılan GSP, ayrık ve kombinasyonel eniyileme (Combinatorial Optimization) problemlerinin kapsamına girer. Özellikle bilgisayarcılar ve matematikçiler arasında çok bilinen ve üzerinde yoğun bir şekilde çalışma ve araştırmalar yapılan NP-Tam (NP-Complete) bir eniyileme problemidir. Buradaki NP harfleri deterministik olmayan çok terimli sözcüklerinin İngilizce karşılıklarının (non-deterministic polynomial) baş harflerinden gelmektedir. NP-Tam ifadesi makul büyüklükte bir problemde, ele alınması gereken çok sayıda varsayım bulunmasından dolayı optimum bir çözüm aramanın (hesaplama maliyetlerinin çok yüksek olması nedeniyle) mümkün olmaması durumunda kullanılır. NP-Tam optimizasyon problemlerinde işlem zamanının hızlı bir biçimde artış göstermesi ve hesaplama sürelerinin uzunluğundan dolayı problemin çözümüne ulaşılamaması araştırmacıları çözüm için alternatif yollar geliştirmeye yöneltmiştir (Yıldırımhan, 2003). Araştırmacılar tarafından geliştirilen bu yeni çözüm yöntemleri, genelde probleme kısa sürede en iyi olmasa da en iyiye yakın çözümler üreten yöntemlerdir. d-boyutlu uzayda verilen noktalar için en kısa turu bulmayı sağlayan GSP ler içinde en yaygın olarak kullanılan, iki boyutlu olandır. Öklit GSP de düğümler R 2 içindedir ve uzaklık l 2 normundadır (Arora, 1996). Bazı durumlarda da A şehrinden B şehrine gitmenin maliyeti ile, B şehrinden A şehrine gitmenin maliyeti farklıdır. Bazı şehirler arasında tek yön yolların olması, gidiş ve geliş yönlerinde bulunan yollardaki trafik sıkışıklığının getireceği süre farklılıkları gibi etkenlerin dikkate

22 6 alındığı bu durumlarda simetrik olmayan GSP devreye girer (Uğur, 2008). Simetrik olmayan GSP de bulunan çözüm, çizge üzerinde gösterilirken yönün de belirtilmesi gerekmektedir. Ancak iki şehir arasındaki gidiş ve dönüş maliyetlerinin eşit olduğu simetrik GSP de yön belirtmeye gerek yoktur. 2.2 Gezgin Satıcı Probleminin Önemi Gezgin satıcı problemi, eniyileme yöntemleri üzerinde çalışmalar yapan araştırmacılar için ideal bir test ortamıdır. Birçok araştırmacı geliştirdikleri yöntemlerinin diğer eniyileme yöntemlerinden üstün olduğunu ispat etmek için üzerinde yoğun olarak çalışılan bir problem olmasından dolayı GSP yi kullanır. Problemin üzerinde yoğun olarak çalışılmasının nedenlerinden biri kolay anlaşılan bir problem olmasıdır. Bir başka önemli neden de problemin gerçek dünyadaki birçok pratik uygulamaya uyarlanabilir olmasıdır. Bu pratik uygulamalar, 2.4 Gezgin Satıcı Probleminin Uygulama Alanları bölümünde anlatılmıştır. Bilgisayar mühendisliği müfredatında algoritmalar, veri yapıları, ayrık matematik, optimizasyon, yapay zeka gibi birçok derste probleme ve çözüm yöntemlerine değişik bakış açıları ile değinilmektedir (Özkan vd., 2008). GSP, eniyileme problemi olması nedeniyle endüstri mühendisliği kapsamında da incelenmektedir. 2.3 Gezgin Satıcı Probleminin Çözüm Yöntemleri Gezgin satıcı probleminin çözümü için ilk akla gelen yol kaba kuvvet arama yöntemi ile, doğrudan tüm permütasyonların toplam yol

23 7 uzunluklarının hesaplanması ve en küçüğünün bulunmasıdır (Uğur, 2008). Ancak N in (şehir sayısı) büyük değerleri için permütasyon sayısı N! çok büyük değerlere ulaşacağından, bu işlem oldukça uzun bir zaman almaktadır. Örneğin sadece 50 şehrin bulunduğu bir durumda bile, permütasyonların sayısı, bilgisayarın kısa sürede çözemeyeceği kadar büyük (50!) olmaktadır. Problemin uygulama alanlarından biri olan devre kartlarının üzerlerindeki delgi işlemi yapılacak olan nokta sayılarının çokluğunu düşünecek olursak bu yöntemle sonuca ulaşmak olanaksız hale gelir. Bu nedenle hızlı ve etkin çözüm için birçok farklı yöntem geliştirilmiştir. Aşamalı Geliştirme (Iterative Improvement), Doğrusal Programlamaya dayalı Dallan ve Sınırla (Branch-and-Bound) ve bu yöntemin Düzlem Kesme yöntemleriyle melezleştirilmesinden oluşan Dallan ve Kes (Branch-and-Cut) kesin çözüm veren yöntemlerdendir. Sezgisel veya yaklaşıma dayalı çözümler veren yöntemler ise, makul bir sürede en iyi çözüme yakın sonuçlara ulaşılmasını sağlarlar (Cevre vd., 2007). Sezgisel yöntemlerin en önemlileri, Genetik Algoritmalar (Genetic Algorithms), Benzetimli Tavlama (Simulated Annealing), Yasak Arama (Tabu Search), Yapay Sinir Ağları (Neural Networks) ve Karınca Kolonisi Optimizasyonu (Ant Colony Optimization) algoritmalarıdır. Bu yöntemlerden genetik algoritmalar ve karınca kolonisi algoritmaları eniyileme yöntemleri bölümünde ayrıntılı bir biçimde anlatılmıştır. Problemin çözümü için yukarıda bahsedilen global arama yöntemlerinin yanı sıra 2-opt, 3-opt ve Lin-Kernighan algoritması gibi bazı yerel arama teknikleri de geliştirilmiştir. Şehir sayısının çok fazla olmadığı durumlarda tek başlarına da olumlu sonuçlar veren bu

24 8 yöntemler şehir sayısının artması durumunda tek başlarına yeterli olmazlar. Yerel arama teknikleri çok sayıda şehrin bulunduğu problemlerde global arama yöntemleri ile birlikte kullanılmaları halinde başarılı olurlar. 2.4 Gezgin Satıcı Probleminin Uygulama Alanları Gezgin satıcı probleminin günümüzdeki uygulamalarını temelde iki ana gruba ayırabiliriz. Bunların ilki GSP ye etkin bir biçimde en kaliteli çözümleri üretebilen eniyileme yöntemini veya yöntemlerini bulmayı amaçlayan araştırmalar ve deneysel uygulamalardır. Bu deneysel uygulamaların bazıları da geliştirilen bir eniyileme yönteminin başarısını ortaya koymak ve diğer yöntemlere göre daha üstün olduğunu kanıtlamak amacıyla gerçekleştirilir. İkinci grup ise endüstride ya da diğer alanlardaki gerçek dünya problemlerini GSP ile modelleyerek bu problemlere çözüm üretmeyi amaçlayan pratik uygulamalardır. Problemin en önemli pratik uygulamalarından biri yol ve rota planlamadır. Rotada bulunan şehirler problemin adındaki gibi bir satıcının satış yapacağı yerler ya da tatile çıkan bir ailenin dolaşmak istediği tatil beldeleri olabilir. Sonuçta gezgin satıcı da tatile çıkan aile de bu dolaşımı en az maliyetle gerçekleştirmek ister. Bunun için de dolaşmak istedikleri şehirlerden geçen en kısa turu bulup rotalarını bu tura göre çizmeleri gerekir. Otobüs ve uçaklarla gerçekleştirilen posta dağıtımında da bu yaklaşımdan yararlanılır. Aslında bu mantık tüm toplama ve dağıtım problemleri için bir örnek teşkil etmektedir.

25 9 Çok sayıda işin tek bir makine tarafından yapıldığı bir fabrikada farklı işlerin gerçekleştirilmesi için makinenin farklı durumlarda (belirli bir sıcaklık ya da basınç değeri gibi) olması gerekiyorsa bu işlerin hangi sırayla gerçekleşeceğini belirleme, GSP nin pratik uygulama alanlarından olan iş planlamanın kapsamına girer (Yıldırımhan, 2003). İş planlamanın yanı sıra ders programı oluşturma ve sınav çizelgeleme gibi problemler de GSP ile modellenebilmektedirler. Bazı üretim sektörlerinde, tahta veya metal levhalar üzerinde delik açmaya gerek duyulmaktadır. Baskılı devre kartlarında ise imalatçılar, kart üzerinde daha sonra elektronik parçaların lehimleneceği iğnelere karşılık gelen yerleri delerler (Yeniay, 1994). Buradaki amaç kart üzerinde yer alan bu noktaları delgi işleminin süresini minimuma indirecek sırada delmektir. Baskılı devre kartlarındaki delgi işlemi sırasının belirlenmesi de GSP nin pratik uygulama alanlarından biridir. 2.5 Dinamik Gezgin Satıcı Problemi Dinamik gezgin satıcı problemi nedir? Gezgin satıcı problemi, yukarıda da bahsedildiği gibi bir çizgedeki en kısa Hamilton turunu bulmayı amaçlar. Dinamik Gezgin Satıcı Problemi (DGSP) ise, kenarların ağırlık değerlerinin, düğümlerin (vertex) de sayı ve yerlerinin zamanla değişebildiği bir çizgedeki en kısa Hamilton turunu bulmayı amaçlayan bir problemdir (Liu and Kang, 2004). Dinamik gezgin satıcı probleminde GSP den farklı olarak düğüm ya da bir başka deyişle şehir sayısı zamanla değişebilir yani zamanla bazı düğümler kaybolabilir veya bazı yeni düğümler ortaya çıkabilir. Benzer

26 10 biçimde düğümlerin pozisyonları ya da iki düğüm arasındaki maliyet değeri de değişime uğrayabilir. İki düğüm arasındaki maliyeti simgeleyen bu değer problemin türüne göre uzaklık, zaman ya da para gibi bir değer olabilir. Dinamik gezgin satıcı problemi temel özellikler açısından gezgin satıcı problemine çok benzer olmasına rağmen, kendine özgü bazı karakteristik özelliklere de sahiptir (Liu and Kang, 2004). Bunları şu şekilde sıralayabiliriz: Süreklilik (Continuity): Problem zamanla kısmen ya da nicel olarak değişikliğe uğrayabilir. Sağlamlık (Robustness): Dinamik GSP, bir düğümün silinmesi ya da eklenmesi gibi beklenmeyen durumlara hızlı bir biçimde cevap verebilmeyi gerektirir. Etkinlik (Efficiency): Dinamik GSP, en iyi turun makul bir sürede bulunmasını gerektirir Dinamik gezgin satıcı probleminin önemi Eniyileme üzerine yapılan araştırmaların büyük çoğunluğu zamana bağlı olarak değişime uğramayan, statik eniyileme problemleri üzerine odaklanmıştır. Ancak gerçek dünyadaki eniyileme problemlerinin çok büyük bir bölümü zamana bağlı olarak değişen yani dinamik problemler oldukları için bu problemlerin GSP den ziyade dinamik GSP ile modellenmeleri daha uygundur. Örneğin gerçek dünyaya ilişkin optimizasyon problemlerinden askeri uydu sistemleri ve gerçek zamanlı

27 11 kontrol sistemleri bu tip problemlerdir (Zhou et al., 2003). Bunlar dinamik sistemler oldukları için GSP ile modellendiklerinde çözüme ulaşılamaz. Bu tip yaşayan ve dolayısıyla da zamana bağlı olarak değişime uğrayan sistemler kesinlikle dinamik GSP ile modellenmelidirler. DGSP, GSP den daha zor bir problemdir. Bunun nedeni de hiç kuşkusuz ki, GSP de sabit olan şehir sayısı ve maliyet matrisinin DGSP de zamana bağlı olarak değişebilmesidir (Li et al., 2006). DGSP gerçek dünyadaki optimizasyon problemlerini modellemek için oldukça uygun olan, yaygın olarak bilinen ve önemli bir konu olmasına rağmen, literatürde bu konuyla ilgili çok az sayıda çalışma bulunmaktadır. Dinamik gezgin satıcı probleminin ortaya atılmasından bu yana konuyla ilgili az sayıda çalışma yapılmış olması halen kesinlik kazanmamış ve cevap bekleyen bazı soruların bulunmasına neden olmuştur. Bunları şu şekilde sıralayabiliriz: DGSP nin eniyileme hedefi nedir? DGSP nin çözümü için kilit noktalar nelerdir? Hangi yaklaşım DGSP nin çözümünde etkilidir? (Zhou et al., 2003). Tez projesi kapsamında yapılan çalışmalar boyunca, üzerinde yeterince çalışılmamış ancak büyük öneme sahip olan dinamik gezgin satıcı problemi ile ilgili bu ve benzeri sorulara cevaplar aranmıştır Dinamik gezgin satıcı probleminin çözüm yöntemleri DGSP, yüksek kaliteli çözümlerle birlikte değişikliklere hızlı bir biçimde cevap verebilmeyi ve yüksek etkinliği de gerektirir (Liu and Kang, 2004). Bu nedenle genelde problemin çözümü için tek bir

28 12 yöntemden ziyade birden fazla tekniğin bir arada kullanılmasıyla geliştirilen melez yöntemlerden yararlanılmıştır. Çünkü yalnızca bir yöntem kullanıldığında bu yöntem etkinliği ve değişikliklere hızlı cevap vermeyi başarsa dahi yüksek kaliteli çözümlere ulaşmada yetersiz kalır ya da tam tersi olur yani yüksek kaliteli çözümlere ulaşılır ancak etkinlik ve değişikliklere cevap verme süresi (response time) istenilen düzeyde olmaz. Problemin çözümünde genellikle global eniyileme yöntemleri ile yerel arama tekniklerinin bir arada kullanıldığı yaklaşımlar başarılı olmuştur. Genetik algoritmalar ve karınca kolonisi algoritmaları problemin çözümünde kullanılan global eniyileme yöntemlerinin başında gelmektedir. 2-opt ve 3-opt ise bu yöntemlerle birlikte kullanılan yerel arama teknikleridir. Eniyileme Yöntemleri bölümünde tüm bu yöntem ve teknikler detaylı bir şekilde anlatılmış, Önceki Çalışmalar bölümünde ise bu yöntemleri kullanarak DGSP ye çözüm üretmeye çalışan araştırmacıların önemli çalışmaları hakkında bilgiler verilmiştir Dinamik gezgin satıcı probleminin uygulama alanları Dinamik gezgin satıcı probleminin günümüzdeki uygulamalarını temelde iki ana gruba ayırabiliriz. Bunların ilki DGSP ye etkin bir biçimde en kaliteli çözümleri bulabilen ve değişimlere en kısa sürede cevap verebilen eniyileme yöntemini ya da yöntemlerini bulmayı amaçlayan araştırmalar ve deneysel uygulamalardır. İkinci grup ise endüstride ya da diğer alanlardaki gerçek dünya problemlerini DGSP ile

29 13 modelleyerek bu problemlere çözüm üretmeyi amaçlayan pratik uygulamalardır. Dinamik gezgin satıcı problemi, rota planlama ve robot kontrol sistemleri gibi GSP nin kullanılabildiği tüm pratik uygulamalarda kullanılabilmektedir. Eğer bahsi geçen pratik uygulama hiçbir zaman değişikliğe uğramayan bir uygulama değilse DGSP nin kullanılması daha uygundur. Aksi takdirde statik GSP nin yetersiz kaldığı ve bazı sorunlara neden olduğu görülmektedir. Örneğin tatil için en düşük maliyetli olan rotayı belirledik ve yola çıktık ancak daha sonra rotamızda bulunan yollardan birinin yol çalışması nedeniyle kullanım dışı olduğunu öğrendik. Böyle bir durumda mevcut şartlar altındaki en düşük maliyetli rotanın bulunması ve bu yeni rotanın takip edilmesi beklenir. Ancak statik GSP ile bunu sağlamak mümkün değildir. Oysa dinamik GSP, değişikliğe en kısa sürede uyum sağlar ve yeni rotamızı bulur. DGSP, yukarıda bahsedilen uygulamaların yanı sıra statik GSP nin kullanılamadığı gerçek zamanlı kontrol sistemleri ve askeri uydu sistemleri gibi dinamik sistemlerde de kullanılabilir. Zaten DGSP nin önemi de gerçek dünyaya ilişkin bir çok optimizasyon probleminin zamanla değişime uğrayan sistemler olmasından kaynaklanmaktadır.

30 14 3. ENİYİLEME YÖNTEMLERİ 3.1 Eniyileme Yöntemlerinin Sınıflandırılması Gezgin satıcı problemi gibi çok sayıda çözüm adayı içerisinden en iyi olanı bulmayı amaçlayan problemlerin çözümünde eniyileme yöntemleri adı verilen teknikler kullanılır. Çözüm uzayının bütününde arama yapan yöntemler global arama yöntemleri ya da global eniyileme teknikleri olarak adlandırılırken, çözüm uzayı üzerindeki herhangi bir noktadan başlayarak arama yapan teknikler ise yerel arama yöntemleri ya da yerel eniyileme teknikleri olarak adlandırılırlar. Bu bölümde dinamik gezgin satıcı probleminin çözümünde kullanılan global eniyileme yöntemlerinden genetik algoritmalar ve karınca kolonisi algoritmaları ile yerel eniyileme yöntemlerinden 2-opt ve 3-opt anlatılmıştır. Tez projesi kapsamında geliştirilen melez algoritmada bu yöntemlerden genetik algoritmalar, 2-opt ve 3-opt kullanılmıştır. 3.2 Genetik Algoritmalar Tanım ve kapsam Temel ilkeleri ilk kez Michigan Üniversitesi nden John Henry Holland tarafından ortaya atılmış olan genetik algoritmalar, doğada gözlemlenen evrimsel sürece benzer biçimde çalışan arama ve eniyileme yöntemleridir. Genetik algoritmalar, yapay zekanın hızla gelişen alanlarından olan evrimsel hesaplamanın kapsamına girer ve diğer birçok yapay zeka alanı gibi temel prensipleri, doğada bulunan süreçleri taklide dayanır. Yapay zekanın bir başka alt alanı olan yapay sinir ağlarının,

31 15 insan beyninin çalışma mantığını taklit etmeye çalıştığı gibi genetik algoritmalar da evrimsel süreci bilgisayar ortamında taklit ederek problemlere çözüm üretmeye çalışır. Evrimsel programla, evrimsel stratejiler ve genetik programlama da genetik algoritmalarla birlikte evrimsel hesaplamanın kapsamına giren diğer tekniklerdir. Genetik algoritmalar, özellikle kombinasyonel eniyileme problemlerine yaklaşık iyi sonuçlar bulmayı hedefleyen arama yöntemleridir. Problemin çözümünde kullanılacak rastgele seçilmiş bir çözüm kümesi oluşturabilmek için evrimsel mekanizmaların kullanıldığı bu yöntemlerin temel mantığı topluluğun nesilden nesle geçmesi sırasında kötü çözümlerin yok olmasına ve iyi çözümlerden daha iyi çözümlere ulaşılmasına dayanır (Özkan vd., 2008). Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı çözümlerden oluşan bir çözüm kümesi üretir. Böylelikle, arama uzayında aynı anda birçok nokta değerlendirilmekte ve sonuçta bütünsel çözüme ulaşma olasılığı yükselmektedir. Çözüm kümesindeki çözümler birbirinden tamamen bağımsızdır. Her biri çok boyutlu uzay üzerinde bir vektördür. Genetik algoritmalarda çözümün uygunluğu onun seçilme şansını arttırır ancak seçilmesini garanti etmez. Seçilim işlemi de başlangıç topluluğunun oluşturulması gibi rastgeledir ancak bu rastgele işlemde çözüm adaylarının seçilme olasılıklarını çözümlerin uygunluk değerleri belirler. Genetik algoritmalar probleme tek bir çözüm aramak yerine bir çözüm kümesi üzerinde çalışırlar. Genetik algoritmalarda olası

32 16 çözümlerin tümü hemen yaratılmaz. En iyi ya da en iyiye yakın çözüme olası çözümlerin bir bölümü üzerinden gidilir. Genetik algoritmalar gerekirci (deterministik) yöntemler değildir, olasılık üzerine kurulu (stokastik) yöntemlerdir. Problem uzayında ilerleyebilmek için sadece ilgili noktanın uygunluk değeri bilgisine ihtiyaç duyarlar. Genetik algoritmalar paralel çalışırlar çünkü aynı anda problem uzayının birden çok noktası üzerinde arama yaparlar Tarihçe Aslında her şey Charles Darwin in 1800 lerin ortalarında evrim teorisini ortaya atmasıyla başladı. 20. yüzyılda bilgisayar bilimlerinin ortaya çıkması ve hızla gelişmesiyle birlikte Alan Turing gibi alanın önde gelen bazı isimleri evrimsel mekanizmaların bilgisayarlarla problem çözmede kullanılabileceğini ortaya koydular lı yıllarda Alman bilgisayar bilimcisi Ingo Rechenberg, ilk kez evrimsel hesaplama kavramından bahsetti. Ancak bütün bu gelişmelere rağmen evrim yasalarını optimizasyon problemlerinin çözümünde kullanma fikrini ilk ortaya atan kişi Michigan Üniversitesi nden John Henry Holland olmuş ve bu nedenle de literatürde genetik algoritmaların babası olarak kabul edilmiştir. Holland bu konuda yaptığı çalışmaları 1975 yılında Doğal ve Yapay Sistemlerde Uyum (Adaptation in Natural and Artificial Systems) adlı kitabında bir araya getirerek genetik algoritmalar kavramının geniş kitlelere ulaşmasını sağlamıştır. Holland (1975), genetik algoritmaları evrimsel mekanizmalar yardımıyla bir bilgisayara anlayamadığı çözüm yöntemlerini öğretme süreci olarak tanımlamaktadır. Ancak Holland ın bu işe başlarken asıl amacı spesifik

33 17 problemlere çözüm üreten algoritmalar geliştirmek değil, doğal adaptasyon mekanizmasını bilgisayar sistemlerine uyarlamak olmuştur. Bu nedenle günümüzde kullanılan genetik algoritmalar Holland ın ortaya attığı algoritmalara göre bazı farklılıklar göstermektedir. Holland ın Michigan Üniversitesi nden öğrencisi olan ve doktorasında genetik algoritmalar üzerine çalışan David Goldberg ise 1989 yılında Arama, Eniyileme ve Makine Öğrenmesinde Genetik Algoritmalar (Genetic Algorithms in Search, Optimization and Machine Learning) adlı kitabında gerçek hayata ilişkin birçok optimizasyon probleminin genetik algoritmalarla nasıl çözüleceğini anlatmış ve eser genetik algoritmalar konusunda uzmanlaşan kişiler için bir başucu kitabı haline gelmiştir. Goldberg (1989), çalışmasında genetik algoritmaları doğal seçilim ve genetik kuralları üzerine kurulmuş arama algoritmaları olarak tanımlamaktadır. Goldberg in kitabı genetik algoritmaların gerçek problemlerin çözümünde kullanımını anlattığı için alana olan ilgiyi bir anda önemli ölçüde arttırmıştır. Genetik algoritmalar ile ilgili bir başka önemli gelişme ise Stanford Üniversitesi profesörlerinden John Koza nın 1990 yılında Genetik Programlama kavramını ortaya atması ve 1992 yılında Genetik Programlama: Bilgisayarların Doğal Seçilim Yoluyla Programlanması Üzerine (Genetic Programming: On the Programming of Computers by Means of Natural Selection) (Koza, 1992) adlı kitabında bu kavramı anlatması olmuştur. Genetik Programlama, çözülmek istenen problemin yapı taşlarından oluşturulan olası çözüm yöntemlerinin belli bir uyum kriterine göre evrimsel mekanizmalardan geçirilerek mükemmelleşmesini amaçlayan bir evrimsel hesaplama yöntemidir. Genetik Programlama, genlerinde program parçacıkları kodlanmış

34 18 kromozomlar üzerinde çalışan bir genetik algoritma ile istenilen işi yapan bir programın oluşturulması olarak da tanımlanabilir. Gezgin satıcı probleminin çözümü için ise problemin ilk defa tartışılmaya başlandığı 1800 lerden bu yana birçok çalışma yapılmıştır, ancak Grefenstette et al. (1985), Goldberg and Lingle (1985), Oliver et al. (1987) GSP yi genetik algoritmalar ile çözmeye çalışan ilk araştırmacılardır (Larranaga et al., 1999). O tarihten bu yana genetik algoritmalar bu yönde çok umut verici sonuçlar üretmiş ve GSP için genetik algoritma tabanlı birçok yaklaşım geliştirilmiştir (Tsai et al., 2004) Temel kavramlar Genetik algoritmaların amacı evrimsel süreci taklit ederek problemlere çözüm üretebilmek olduğu için genetik algoritmalardaki birçok kavram genetik bilimindeki karşılıklarıyla benzerlik göstermektedir. Aşağıda bu kavramların incelenmesine yer verilmiştir. Gen: Genetik biliminde belirli bir özelliği şifreleyen DNA blokları anlamına gelen genler, genetik algoritmalarda ise olası çözümün temelini oluşturan bir veya birkaç bitlik bloklardır. Birey: Genetik biliminde topluluğu oluşturan canlılardan her birine birey adı verilir. Bireyler genlerinde bulunan özellikleri taşırlar. Genetik algoritmalarda ise her birey problem için olası bir çözümü temsil eder. Genetik algoritmalarda bireyler kromozom olarak da adlandırılmaktadır.

35 19 Topluluk (Popülasyon): Topluluk genetik biliminde de genetik algoritmalarda da bireylerden oluşan kümeye verilen addır. Topluluk kavramı genetik biliminde canlılardan oluşan, genetik algoritmalarda ise olası çözümlerden oluşan bir topluluğu temsil etmektedir. Genetik algoritmalarda bir sonraki nesle geçiş amacıyla yeni bir topluluk oluşturabilmek için mevcut topluluktaki bireyler çaprazlama ve mutasyon gibi genetik operatörlere tabi tutulurlar. Uygunluk (Fitness): Genetik biliminde bireyin çevre şartlarına ne kadar dayanıklı olduğunu belirten uygunluk değeri genetik algoritmalarda ise çözümün kalitesini belirler ve uygunluk fonksiyonu kullanılarak hesaplanır. Uygunluk fonksiyonu problemin türüne göre belirlenmelidir. Örneğin GSP de amaç en düşük maliyetli turu bulmak olduğu için uygunluk değeri bireyin içerdiği şehir sıralamasının toplam maliyetinin düşüklüğüyle doğru orantılı olmalı, uygunluk fonksiyonu da buna göre belirlenmelidir. Böylece en düşük maliyetli tur en kaliteli çözümü temsil etmiş olur. Çaprazlama: Genetik biliminde üreme sırasında ebeveynlerin genlerinin belirli bölümlerinin birleşerek yeni bir kromozom oluşturması anlamına gelen çaprazlama genetik algoritmalarda da benzer biçimde olası çözümlerin farklı bölümlerini birleştirerek daha iyi çözümlere ulaşmak amacıyla gerçekleştirilen bir işlemdir. Mutasyon: Genetik biliminde ebeveyn ile çocuk arasında yalnızca nükleotid değişimi olması anlamına gelen mutasyon, genetik algoritmalarda çeşitliliği sağlamak amacıyla bireyin bir sonraki nesle

36 20 geçirilmesi sırasında kromozomu oluşturan karakter dizisinde yapılan rastgele değişikliğe verilen addır Genetik algoritma süreci Bir problemin çözümünde genetik algoritmalar kullanıldığı takdirde izlenecek adımlar ana hatlarıyla aşağıdaki gibi sıralanabilir: 1. [Topluluk Oluşturma] N adet birey içeren topluluğu oluştur. 2. [Uygunluk] Her x bireyi için f(x) uygunluk değerini hesapla. 3. [Yeni Nesil] Aşağıdaki adımları tekrarlayarak yeni topluluğu oluştur. a. [Seçilim] Topluluktan uygunluk değerlerini dikkate alarak (uygunluk değeri daha iyi olanların seçilme olasılığı yüksek olacak şekilde) iki birey seç. b. [Çaprazlama] Belirli bir çaprazlama olasılığıyla ebeveynlerden (seçilen iki birey) gelen kromozomları çaprazlayarak yeni birey oluştur. Çaprazlama yapılmazsa ebeveynlerden gelen kromozomları aynen bir sonraki nesle kopyala. c. [Mutasyon] Yeni bireyi belirli bir olasılığa göre mutasyona uğrat. d. [Ekleme] Oluşturulan bireyi yeni topluluğa ekle. 4. [Nesil Geçişi] Önceki topluluğu, yeni toplulukla değiştir ve nesil sayısını arttır.

37 21 5. [Test] Sonlandırma koşulu sağlandıysa mevcut topluluktaki en iyi çözümü döndür, sağlanmadıysa 2. adıma dön. Kromozomların Kodlanması: Bireyler ya da bir başka deyişle kromozomlar temsil ettikleri çözümle ilgili bilgi içerirler. Genetik algoritmaları kullanarak problem çözebilmenin ilk aşaması kromozomların nasıl kodlanacağının belirlenmesidir. Kromozomların kodlanmasında kullanılacak yaklaşım, problemin türüne ve özelliklerine göre farklılık gösterir. En sık kullanılan yöntem, verinin işlenmesi daha kolay ve hızlı olduğu için ikili kodlamadır. İkili kodlamada her kromozom 1 ve 0 lardan oluşan bir karakter dizisi biçiminde ifade edilir. Yaygın olarak bilinen bir kombinasyonel eniyileme problemi olan Sırt Çantası Problemi (Knapsack Problem) ikili kodlama yöntemine uygun bir problem örneğidir. Problemde belirli bir kapasitesi olan bir sırt çantasıyla birlikte değerleriyle boyutları belirli olan nesneler bulunmaktadır ve amaç sırt çantasının kapasitesini aşmadan çantada yer alan nesnelerin değerleri toplamını maksimuma çıkarabilecek biçimde çantaya koyulacak nesneleri seçmektir. Bu problem her bit, ilgili nesnenin olası çözümde çantada bulunup bulunmadığını belirtecek (Örneğin 1 nesnenin çantada olduğu 0 ise olmadığı anlamına gelir) şekilde ikili kodlamayla temsil edilebilir. Ancak sıra tabanlı problemler için ikili kodlama uygun değildir. Bu problemlerde permütasyon kodlama yaklaşımı kullanılır. Permutasyon kodlamada her kromozom, ilgili karakterin sıralamadaki pozisyonunu belirten değerlerden oluşan bir dizi ile ifade edilir. GSP de en düşük maliyetli turu oluşturan düğüm sırasını bulmayı amaçlayan bir problem olduğundan, çözümü için permütasyon kodlama tekniğinden yararlanılmalıdır.

38 22 Topluluğun İlklenmesi: Kromozomların nasıl kodlanacağı belirlendikten sonra sıra başlangıç topluluğunu oluşturmaya gelir. Bu aşamada genetik algoritmaların parametrelerinden biri olan topluluk büyüklüğü önemlidir. Örneğin topluluk büyüklüğü 50 ise 50 adet birey yaratılır ve bu bireyler başlangıç topluluğunu oluşturur. Başlangıç topluluğunu oluşturmada izlenen yollar yapılan çalışmanın amacına göre farklılık gösterebilir. Araştırma amacıyla yapılan çalışmalarda genellikle başlangıç topluluğunu oluşturan bireyler rastgele üretilir. Ancak gerçek dünyaya ilişkin bir uygulamada, problemle ilgili bazı çözümlerin başlangıçta kabaca bilinmesi durumunda, en iyi çözüme daha kısa sürede ulaşmak amacıyla, başlangıç topluluğu bu çözümler kullanılarak da oluşturulabilir (Karaboğa, 2004). Seçilim: Genetik algoritmalarda bir sonraki nesle geçiş sırasında, yeni topluluğu oluşturmak için mevcut topluluk içerisinden çaprazlama ve mutasyon işlemlerine tabi tutulacak bireylerin seçilmesi gerekir. Teoriye göre kaliteli, bir başka deyişle uygunluk değeri yüksek olan bireyler yaşamlarını sürdürmeli ve bu bireylerden yeni bireyler oluşturulmalıdır (Özkan vd., 2008). Benzer biçimde kalitesiz yani düşük uygunluk değerine sahip bireyler de zamanla yok olmalıdırlar. Bu nedenle tüm seçilim yöntemlerinde uygunluk değeri fazla olan bireylerin seçilme olasılığı daha yüksek tutulur. Yaygın olarak bilinen seçilim yöntemleri Rulet Tekerleği (Roulette Wheel), Turnuva Seçilimi (Tournament Selection) ve Sıralı Seçilimdir (Rank Selection). Rulet tekerleği yönteminde bir bireyin seçilme olasılığı, o bireyin uygunluk değerinin tüm bireylerin uygunluk değerleri toplamına oranı kadardır. Uygunluk değerleri arasındaki farkların çok fazla olması durumunda rulet tekerleği

39 23 hep aynı çözümler etrafında dolaşarak yerel minimumlara takılma sorununa yol açabilir. Sıralı seçilim rulet tekerleğindeki bu dezavantajı ortadan kaldırmaya yönelik olarak geliştirilmiş bir yöntemdir. Bu yöntemde en kötü uygunlukta olan bireye 1 değeri verilir, ondan daha iyi olana 2, daha iyisine 3 değeri verilerek devam edilir. Bir bireyin seçilme olasılığı, o bireye verilen değerin tüm bireylere verilen değerler toplamına oranı kadardır. Böylece düşük uygunluk değerlerine sahip bireylere de seçilme şansı tanınmış olur. Bu yöntem bazen çözümün daha geç yakınsamasına neden olabilmektedir. Turnuva seçiliminde ise topluluktan belirli sayıda (k adet) birey rastgele olarak alınır ve bu bireyler içerisinden uygunluk değeri en iyi olan birey seçilir. Bu yöntemdeki amaç rastgelelikten yararlanarak çeşitliliği arttırabilmektir. Buradaki önemli bir nokta da k değerinin topluluk büyüklüğü dikkate alınarak belirlenmesidir. Örneğin 5000 bireyden oluşan bir toplulukta k büyük bir değer olmalıdır. Bu yöntemlerin dışında varyans değeri kullanılarak tüm bireylerin seçilme olasılıklarının makul bir değer içerisinde tutulmasını sağlayan Sigma Ölçeklendirme Seçilimi (Sigma Scaling Selection) ve topluluk içerisinde baskın birey bulunup bulunmamasına göre seçilme olasılıklarının belirlendiği Boltzmann Seçilimi (Boltzmann Selection) gibi daha az bilinen ve kullanılan yaklaşımlar da mevcuttur. Tablo 3.1 de rulet tekerleği ve sıralı seçilim yöntemlerinin karşılaştırılmasına yer verilmiştir.

40 24 Tablo 3.1: Rulet Tekerleği ve Sıralı Seçilimin karşılaştırılması Uygunluk Değeri Rulet Tekerleği Sıralı Seçilim 18 18/25 %72 4/10 %40 4 4/25 %16 3/10 %30 2 2/25 % 8 2/10 %20 1 1/25 % 4 1/10 %10 Çaprazlama: Genetik algoritmalarda çaprazlama ya da bir başka deyişle yeniden birleştirme işlemi, iyi çözümlerin farklı bölümlerini bir araya getirip daha iyi çözümler oluşturabilmek amacıyla kullanılır. Çaprazlamanın en kolay yolu rastgele bir çaprazlama noktası belirleyip, bu noktadan önceki bölümü ilk ebeveynden, sonraki bölümü ise ikinci ebeveynden alarak yeni bir birey oluşturmaktır. Bu yöntem tek noktalı çaprazlama olarak bilinir. Bunun yanında iki ya da daha fazla noktalı çaprazlama yöntemleri de vardır. Örneğin iki noktalı çaprazlamada bireyler üzerinde rastgele iki nokta belirlenir ve bireyler bu noktalardan parçalara ayrılır. Daha sonra her iki ebeveynin bu iki çaprazlama noktası arasında kalan parçalarının yerlerinin değiştirilmesiyle yeni bireyler oluşturulur. Bunların yanında iki ebeveynden gelen bitlerin ve ya da veya gibi mantıksal işlemlerden geçirilmesiyle yeni bireyin oluşturulduğu aritmetik çaprazlama yöntemi de vardır. Ancak tüm bu teknikler sadece ikili kodlama için kullanılabilen tekniklerdir. Oysa permütasyon kodlama yaklaşımının kullanıldığı genetik algoritmalarda sıra mantığını koruyan çaprazlama yöntemlerine ihtiyaç duyulur. Sıra mantığını koruyan bazı çaprazlama operatörleri ise Order Crossover

41 25 (Syswerda, 1991), Modified Crossover (Davis, 1985), Partially Mapped Crossover (Goldberg and Linglie, 1985), Cycle Crossover (Oliver et al., 1987), 2-quick / 2-repair (Gorges-Schleuter, 1989) şeklinde belirtilebilir. Şekil 3.1 de permutasyon kodlama için sıra mantığını koruyan bir çaprazlama örneğine yer verilmiştir. Örnekte çaprazlama noktasının solundaki karakterler ilk ebeveynden doğrudan alınmıştır. Kalan karakterler ise çaprazlama noktasından başlayarak dairesel olarak aynı noktaya dönen sıradaki konumlarına göre ikinci ebeveynden alınmış ve yeni bir birey oluşturulmuştur. İkinci birey de aynı mantıkla oluşturulmuş, ancak bu kez baş kısım ikinci ebeveynden, sonraki bölüm ilk ebeveynden alınmıştır. Şekil 3.1: Permutasyon kodlamada çaprazlama örneği Mutasyon: Bireyin bir sonraki nesle geçirilmesi sırasında kromozomu oluşturan karakter dizisinde yapılan rastgele değişikliğe mutasyon denir. Mutasyon, oluşan yeni çözümlerin önceki çözümü kopyalamasını önleyerek çeşitliliği sağlamak ve sonuca daha hızlı ulaşmak amacıyla gerçekleştirilir. Mutasyon olasılığı çok düşük (0.001 gibi) tutulmalıdır. Yüksek mutasyon olasılığı uygun çözümleri de bozacak ve genetik algoritmanın, çalışması sırasında problemlerle karşılaşılmasına yol açacaktır. Bazı yöntemlerde ise mutasyon olasılığı yükseltilir, ancak mutasyona uğrayan bireyin uygunluk değerinin azalması durumunda

42 26 mutasyon işlemi iptal edilir. Kontrollü mutasyon diye adlandırabileceğimiz bu durumda ya da mutasyon sonrasında optimizasyon işleminin uygulandığı durumlarda mutasyon oranının yüksek (0.5 gibi) tutulmasında bir sakınca yoktur. Displacement Mutation (Michalewicz, 1992), Exchange Mutation (Banzhaf, 1990), Insertion Mutation (Fogel, 1988; Michalewicz, 1992), Simple Inversion Mutation (Grefenstette et al. 1985; Holland, 1975) ve Inversion Mutation (Larranaga et al., 1999; Fogel, 1988, 1993) sıra tabanlı mutasyon operatörlerinden bazılarıdır. Şekil 3.2 de permutasyon kodlama için sıra mantığını koruyan bir mutasyon örneğine yer verilmiştir. Örnekte birey içerisinden rastgele seçilen iki karakterin yerleri değiştirilerek birey mutasyona uğratılmıştır. Şekil 3.2: Permutasyon kodlamada mutasyon örneği Seçkincilik: Seçilim, çaprazlama ve mutasyon işlemleri sonrasında mevcut topluluğun en iyi uygunluk değerine sahip bireyi bir sonraki nesle aktarılamayabilir. Bunu önlemek için bu işlemlerden sonra, bir önceki topluluğun en iyi (elit) bir veya daha çok bireyi, yeni oluşturulan topluluğa doğrudan aktarılır. Seçkincilik ya da elitizm adı verilen bu yaklaşım genetik algoritmalarda yaygın olarak kullanılmaktadır. Bazı yöntemlerde ise seçkincilikle benzerlik gösteren ancak biraz daha farklı olan bir yaklaşım kullanılır. Bu yaklaşımda en kötü uygunluk değerine sahip bir veya daha fazla birey doğrudan topluluktan çıkarılır. Böylece bu bireylerin bir sonraki nesle aktarılmaları engellenmiş olur.

43 Genetik algoritmaların parametreleri Topluluk Büyüklüğü: Genetik algoritmalarda her nesil için yeni bir topluluk oluşturulur. Oluşturulan toplulukta kaç adet birey bulunacağını belirleyen parametre topluluk büyüklüğüdür. Topluluk büyüklüğü problemin türü ve kapsamı göz önünde bulundurularak dikkatlice belirlenmelidir. Topluluk büyüklüğünün düşük tutulması çözümün yeterince yakınsayamamasına, çok yüksek tutulması ise uygulamanın yavaş çalışmasına neden olur. Özellikle dinamik gezgin satıcı problemi gibi tepki süresinin düşük olmasını gerektiren gerçek zamanlı problemlerde uygulamanın çalışma hızı daha büyük önem kazandığından topluluk büyüklüğü çok daha dikkatli bir şekilde belirlenmeli ve gerektiğinden daha büyük olmamalıdır. Zaten genetik algoritmalar üzerinde yapılan deneysel çalışmalar da belirli bir noktadan sonra topluluk büyüklüğünü artırmanın bir yararı olmadığını ortaya koymaktadır. Çaprazlama Oranı: Yeni nesil oluşturulurken seçilen bireylerin hangi sıklıkta çaprazlama işlemine tabi tutulacağını belirleyen orandır. Bu oran doğrultusunda seçilen bireyler çaprazlanır ya da doğrudan bir sonraki nesle aktarılır. Çaprazlama oranının düşük olması yeni neslin mevcut nesilden yeterince farklılaşamamasına dolayısıyla da kuşak farkının azalmasına neden olur. Bu da çözüme daha uzun sürede ulaşılmasına yol açar. Literatürde ideal çaprazlama oranı 0.7 ya da 0.75 olarak belirtilir. Mutasyon Oranı: Yeni nesil oluşturulurken mutasyon işleminin hangi sıklıkta yapılacağını belirleyen olasılıktır. Bu olasılık doğrultusunda seçilen bireyler mutasyona tabi tutulur ya da doğrudan bir sonraki nesle

44 28 aktarılır. Yüksek mutasyon oranı çözüm adaylarında aşırı rastgeleliğe yol açacağından optimum çözümden uzaklaşmamıza neden olur. Çok düşük mutasyon oranı ise topluluk içerisinde yer alan çözüm adaylarının çeşitliliğini azaltacağından çözüme ulaşmayı güçleştirir. Literatürde ideal mutasyon oranı olarak belirtilmekle birlikte mutasyon oranı belirlenirken problemin türünün de dikkate alınmasında yarar vardır. Mutasyon işleminin bireyin uygunluk değerini azaltması halinde uygulanmadığı kontrollü mutasyon yaklaşımında ve mutasyonun ardından optimizasyonun uygulandığı durumlarda mutasyon oranı daha yüksek (0.5 gibi) tutulabilir. Hedeflenen Sonuç: Bir eniyileme probleminin çözümünde genetik algoritmalar kullanılırken ulaşılmak istenen sonuca ilişkin maliyet değeri (Örneğin GSP için optimum turun yol uzunluğu gibi) önceden bilindiği takdirde bu değer genetik algoritma için bir sonlandırma kriteri olarak kullanılabilir. Böylece bu değere ulaşıldığında genetik algoritma otomatik olarak sonlandırılır ve algoritmanın gereksiz yere çalışmaya devam etmesi engellenmiş olur. Maksimum Nesil Sayısı: Genetik algoritmalar için bir başka sonlandırma kriteri de maksimum nesil sayısıdır. Hedeflenen sonuca ilişkin bir parametre girilmediğinde ya da hedeflenen sonuca ulaşılamadığında algoritma maksimum nesil sayısı olarak belirlenen nesilde sonlandırılır. Maksimum nesil sayısı da tıpkı topluluk büyüklüğü gibi problemin türü ve kapsamı göz önünde bulundurularak dikkatlice belirlenmelidir.

45 29 Genetik algoritmaların parametrelerinin ideal değerlerini belirleyebilmek amacıyla çok sayıda çalışma yapılmıştır. Genetik algoritmalar alanında çalışan birçok önemli isim gibi doktorasını Michigan Üniversitesi nde yapmış olan Profesör Kenneth De Jong, genetik algoritma parametrelerinin genetik algoritmaların performansı üzerindeki etkisini incelemek amacıyla çeşitli test problemleri kullanarak çalışmalar yapmış ve parametreler için bazı uygun değerler önermiştir. Bu değerler Tablo 3.2 de görülmektedir. David Schaffer de benzer bir çalışma yapmış ve iyi bir gerçek zaman performansı elde edebilmek için kullanılması gereken parametre değerleri önermiştir. Bu değerler de Tablo 3.2 de yer almaktadır (Karaboğa, 2004). Tablo 3.2: Genetik algoritmalar için önerilen parametre değerleri (Karaboğa, 2004) Parametre De Jong Schaffer Topluluk Büyüklüğü Çaprazlama Oranı Mutasyon Oranı İdeal parametre değerlerini bulmak için çok sayıda teorik çalışma yapılmış olsa da bu çalışmalar sonunda önerilen değerler kesin değerler değildir. Çünkü ideal parametre değerlerinin belirlenmesinde problemin türünün de büyük önemi vardır. Dolayısıyla farklı problemler için ideal parametre değerleri farklı olabilir.

46 Genetik algoritmaların uygulama alanları Genetik algoritmalar, diğer eniyileme yöntemleri kullanılırken büyük zorluklarla karşılaşılan ve oldukça büyük arama uzayına sahip problemlerin çözümünde başarı göstermektedir. Bir problemin bütünsel en iyi çözümünü bulmak için garanti vermezler. Ancak problemlere makul bir süre içinde, kabul edilebilir, iyi çözümler bulurlar. Genetik algoritmaların asıl amacı, hiçbir çözüm tekniği bulunmayan problemlere çözüm aramaktır. Kendilerine has çözüm teknikleri olan özel problemlerin çözümü için mutlak sonucun hızı ve kesinliği açısından genetik algoritmalar kullanılmazlar. Genetik algoritmalar ancak arama uzayının büyük ve karmaşık olduğu, mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu, problemin belirli bir matematiksel modelle ifade edilemediği ve geleneksel eniyileme yöntemlerinden istenen sonucun alınamadığı problemlerde etkili ve kullanışlıdır. Genetik algoritmaların günümüzdeki uygulamalarını temelde iki ana gruba ayırabiliriz. Bunların ilki mevcut diğer eniyileme yöntemlerine karşı genetik algoritmaların üstünlüğünü ispat etmek amacı ile belirli problemleri çözmede genetik algoritmaların kullanıldığı deneysel uygulamalardır. İkinci grup ise genetik algoritmaların endüstride ve diğer gerçek dünya problemlerinin çözümünde kullanıldığı pratik uygulamalardır (Karaboğa, 2004). Her iki grupta da çok sayıda problemin çözümünde genetik algoritmalardan yararlanılmaktadır. Genetik algoritmalar gezgin satıcı problemi, rota planlama, çizge renklendirme ve parçalama gibi kombinasyonel eniyileme problemlerinin çözümünün yanında fonksiyon optimizasyonunda da kullanılmaktadır.

47 31 Otomatik programlama ve bilgi sistemleri alanında genetik algoritmalar bilgisayar çipleri tasarımı, ders programı hazırlanması, dağıtık bilgisayar ağlarının tasarımı, dağıtık sistemlerde dosya tahsisatı gibi amaçlarla kullanılmaktadır. Genetik algoritmalar makine öğrenmesi alanında hava tahmini, protein yapısı tahmini, yapay sinir ağlarındaki ağırlık değerlerinin hesaplanması, uzman sistemlerin bilgi tabanlarını oluşturan kuralların belirlenmesi, robot alıcıları için kural geliştiren sistemlerin oluşturulması ve robotlarda yörünge planlama gibi konularda kullanılmaktadır. Ekonomide de fiyat verme stratejilerinin gelişim süreçlerini, kazanç getiren pazarların ortaya çıkış süreçlerini ve yenilik sürecini modellemede genetik algoritmalardan yararlanılmaktadır. Genetik algoritmalar pazarlama alanında müşteri profili çıkarma ve veri madenciliği amaçlarıyla da kullanılmaktadır. Yarı iletken yapılandırması, iletişim ağları tasarımı, dijital devre tasarımı, sinyal işlemede filtre tasarımı ve çizelgelemede kaynak paylaşımı, genetik algoritmalardan yararlanılan diğer bazı alanlardır. Genetik algoritmalar bu alanların yanı sıra Montaj Hattı Dengeleme Problemi, Çizelgeleme Problemi, Tesis Yerleşim Problemi, Atama Problemi, Hücresel Üretim Problemi, Sistem Güvenilirliği Problemi, Taşıma Problemi, Araç Rotalama Problemi ve Minimum Yayılan Ağaç Problemi gibi bazı spesifik problemlerin çözümünde de kullanılmaktadır. Genetik algoritmaların uygulama alanlarının ne kadar geniş olduğunu ortaya koyan bir örnek de Hollanda nın Hague Şehri Müzesi ndeki Escher Sergisi ne (2000) ilişkindir. Sergide kullanılacak resimleri belirlemek amacıyla, resimlerden oluşan topluluk evrimsel

48 32 süreçten geçirilmiştir. Bu süreçte uygunluk değeri olarak bilgisayar ekranında görüntülenen resimlere ziyaretçiler tarafından verilen oylar kullanılmıştır Genetik algoritmaların avantajları ve dezavantajları Genetik algoritmalar, büyük bir çözüm uzayına sahip olan karmaşık problemlerin çözümünde oldukça etkili yöntemlerdir. Bu özelliklerinden dolayı da uzun yıllardır eniyileme problemlerinin çözümünde en sık kullanılan yaklaşımlardan olmuşlardır. Sık kullanılmalarındaki bir başka önemli etken de genetik algoritma geliştirmenin ve bu algoritmayı bir uygulamaya dönüştürmenin düşük maliyetli olmasıdır. Genetik algoritmalar problem uzayı hakkındaki varsayımlarla çalışmazlar. Genetik algoritmaların bir başka önemli avantajı da yalnızca optimum çözüme odaklanılmadığı için çok sayıda alternatif çözüm sunabilmeleridir. Problem uzayında paralel işletim yöntemiyle arama yapmayı sağlayan genetik algoritmalar diğer eniyileme yöntemleriyle de bir arada kullanılabilirler. Bu da uygulama geliştiricilere genetik algoritmaların zayıf yönlerini güçlendirme olanağı sunar. Bütün bu avantajların yanı sıra genetik algoritmalarla problem çözmenin bazı dezavantajları da vardır. Örneğin genetik algoritmalar problem uzayının özelliklerinden yeterince faydalanmazlar ve teorik altyapıları oldukça basittir. Genetik algoritmalarda rastgeleliğe dayalı bir arama yapıldığı için problemin türüne bağlı olarak çözüme ulaşmak uzun sürebilir. Genetik algoritmalar optimum sonuca odaklı problemler için uygun değildir çünkü sınırlı bir sürede en iyi çözüme ulaşmayı garanti etmezler. Genetik algoritmaların bir başka zayıf yönü de yerel

49 33 optimizasyonlarda etkili olmamalarıdır. Tez projesi kapsamında oluşturulan eniyileme algoritmasında da genetik algoritmaların bu zayıf yönlerini güçlendirebilmek için genetik algoritmaları 2-opt ve 3-opt gibi yerel arama teknikleriyle birleştiren melez bir yaklaşım kullanılmıştır Hazır genetik algoritma paketleri ve kütüphaneleri Bir problemin çözümünde genetik algoritmalardan yararlanmak isteyen geliştiriciler, zaman kısıtı olan durumlarda uygulamalarında genetik algoritma altyapısı kurmak için, bazı hazır araçlardan da yararlanabilirler. Böylece baştan başlayarak bir genetik algoritma yapısı kurmak zorunda kalmamış olurlar. Bu önemli avantajın yanında unutulmaması gereken nokta ise gerçekleştirilen uygulamanın esnekliğinin, hazır genetik algoritma paketinin uygulama geliştiriciye sunduğu ölçüde olacağıdır. Internet üzerinde pek çok hazır genetik algoritma kütüphanesi bulunmaktadır. Aşağıda yaygın olarak bilinen ve kullanılan hazır genetik algoritma paketleri ile uygulama programlama arayüzleri hakkında bilgi verilmiştir: JGAP (Java Genetic Algorithms Package): Java da yazılmış hazır bir genetik algoritma ve genetik programlama paketidir. Evrimsel prensipleri problemlerin çözümlerine uygulayabilmek için kolaylıkla kullanılabilen temel genetik mekanizmalar sağlar. Pakete adresinden ulaşılabilir. JAGA (Java API for Genetic Algorithms): Her türlü genetik algoritma ve genetik programlama uygulamasını hızlı ve kolay bir biçimde gerçekleştirmeyi sağlayan bir Java uygulama programlama arayüzüdür

50 34 (API). Arayüz, genetik algoritma ve genetik programlamaya ilişkin çok sayıda hazır kod, metot ve operatör içermektedir. JAGA ya adresinden ulaşılabilir GAlib (A C++ Library of Genetic Algorithms): GAlib C++ programlama dili için geliştirilmiş genetik algoritma nesnelerinden oluşan ücretsiz bir yazılım kütüphanesidir. Kütüphane, herhangi bir C++ programında eniyileme yapabilmek için genetik işlemcilerden yararlanmak ve genetik algoritmaları kullanmak isteyen kullanıcılara bunun için hazır bazı araçlar sunmaktadır. GAlib kütüphanesinin çeşitli versiyonlarına adresinden ulaşılabilir. GAUL (Genetic Algorithms Utility Library): GAUL, evrimsel veya genetik algoritmaları kullanan uygulamalar geliştirmeye yardımcı olabilmek için oluşturulmuş açık kaynak kodlu ve esnek bir programlama kütüphanesidir. Kullanıcılara seri ve paralel evrimsel algoritmalar için gerekli veriyi yönetmeye ve işlemeye yarayan veri yapılarıyla fonksiyonlar sunmaktadır. GAUL kütüphanesine adresinden ulaşılabilir. ALGON (A Genetic Algorithm Software Package): ALGON genetik algoritma geliştirmek için oluşturulmuş bir C makro paketidir. Kullanıcılara çok sayıda genetik algoritma stratejisi ve işlemcisiyle birlikte değişken büyüklükte kromozomlar ve kromozom vektörleri üzerinde çalışma olanağı sunar. Bunların yanında ALGON çeşitli parametre değerlerini girmeyi ve genetik algoritmanın evrimini görselleştirmeyi sağlayan bir kullanıcı arayüzüne de sahiptir.

51 Karınca Kolonisi Algoritmaları Tanım Temel ilkeleri ilk kez Marco Dorigo tarafından ortaya atılmış olan karınca kolonisi algoritmaları, karınca kolonilerinin feromon salgılayarak yiyecek kaynakları ile yuvaları arasındaki en kısa yolu bulma yöntemlerinden esinlenerek oluşturulmuş bir tekniktir. Yukarıda bahsedilen genetik algoritmalar, yapay sinir ağları ve diğer birçok önemli yapay zeka tekniği gibi karınca kolonisi algoritmalarının da temel prensipleri doğada bulunan süreçleri taklide dayanır. Dorigo, karınca kolonilerinin davranışlarının matematiksel modelleri üzerine dayandırdığı karınca kolonisi algoritmalarını ilk kez gezgin satıcı problemi üzerinde kullanmış ve olumlu sonuçlar elde etmiştir. Bunun üzerine karınca kolonisi algoritmaları diğer araştırmacılar tarafından da kullanılmaya başlanmış ve günümüzde eniyileme problemlerinin çözümünde yaygın olarak kullanılan bir yapay zeka tekniği haline gelmiştir Tarihçe Karınca kolonisi algoritmaları fikrini ortaya atan ve bu alandaki ilk çalışmayı yapan kişi Marco Dorigo dur. Dorigo, bu çalışmayı 1991 yılında İtalya da bulunan Politecnico Di Milano Üniversitesi ndeki doktora tezi kapsamında gerçekleştirmiş ve oluşturduğu sistemi Karınca Sistemi (Ant System), ortaya çıkan algoritmayı da Karınca Sistemi Algoritması (Ant System Algorithm) olarak adlandırmıştır. Sistemin

52 36 temel prensipleri günümüzdeki karınca kolonisi algoritmaları ile aynı olsa da bu sistemde karınca kolonilerinin davranışları bire bir modellenmemiş, eniyileme yönteminin gücünü arttırmak için bazı farklılıklara gidilmiştir. Örneğin yapay karıncalar, doğadaki karıncaların aksine belirli bir hafızaya sahiptirler ve tamamen kör değildirler. Dorigo, karınca kolonilerinin davranışlarından esinlenerek geliştirdiği bu algoritmayı, gezgin satıcı problemi üzerinde denemeye karar vermiştir. Dorigo ya göre bu kararın en önemli nedeni gezgin satıcı probleminin de en kısa yolu bulmayı amaçlayan bir problem olması dolayısıyla da algoritmanın probleme adapte edilmesinin kolay olmasıdır. Bunun yanında problemin kolay anlaşılır olması, üzerinde yoğun olarak çalışıldığı için, geliştirilen yöntemin diğer eniyileme yöntemleriyle karşılaştırılması açısından bir test ortamı niteliğinde olması da Dorigo nun tercihindeki diğer önemli nedenlerdir. Dorigo nun 1991 yılında karınca sistemi algoritmasını önermesinin ardından karınca kolonisi algoritmaları üzerinde çalışan araştırmacıların sayısı artmıştır yılında Dorigo, Seçkinci Strateji (Elitist Strategy) algoritmasını önermiştir. Aynı yıl Dorigo bu kez Gambardella yla birlikte Karınca Kolonisi Sistemi (Ant Colony System) algoritmasını ortaya koymuştur yılında ise Bullnheimer, Hartl ve Stauss, Sıra Tabanlı Karınca Sistemi (Rank Based Ant System) algoritmasını önermişlerdir. Hemen ardından 2000 yılında Stützle ve Hoos, En Büyük En Küçük Karınca Sistemi (Max-Min Ant System) algoritmasını önermişlerdir. Yukarıda bahsedilen algoritmalar temel karınca kolonisi eniyileme algoritmaları olarak literatürdeki yerlerini almışlardır ve günümüzde birçok araştırmacı tarafından eniyileme problemlerine çözüm üretmek

53 37 amacıyla kullanılmaktadırlar. Bahsi geçen bu algoritmalar ile ilgili detaylı bilgiler, Temel Karınca Kolonisi Algoritmaları bölümünde yer almaktadır Gerçek karınca kolonisinin davranışı Doğada topluluk ya da bir başka deyişle koloni halinde yaşayan, aralarında belirli bir iş bölümü olan ve karşılaştıkları problemleri yardımlaşarak birlikte çözen hayvanlar sosyal hayvanlar olarak kabul edilirler. Bu gruba giren çok sayıda hayvan türü vardır ve bunlardan biri de karıncalardır. Bu tür hayvanların problem çözme yöntemleri örnek alınarak gerçek dünya problemlerinin çözümü için yeni yaklaşımlar türetilebilir. Örneğin karıncalar tam olarak görme yeteneğine sahip olmayan, çevrelerinde ne olup bittiğini izleyemeyen canlılar olmalarına rağmen yuvaları ile yiyecek kaynakları arasındaki en kısa yolu bulabilmektedirler. Bu durumun en önemli tarafı karıncaların çevre şartlarından dolayı en kısa yolun değişikliğe uğraması durumunda da yeni en kısa yolu bulabilme yetenekleridir (Karaboğa, 2004). Karıncaların yiyecek ile yuva arasındaki en kısa yolu bulmalarını ve aralarında haberleşmelerini sağlayan madde, kimyasal bir salgı olan feromondur. Karıncalar, hareket halinde bulundukları yola belirli miktarda feromon maddesi bırakırlar. İlerlemek üzere seçecekleri yönün belirlenmesinde bu maddenin miktarı önemlidir. Karıncaların, feromonun daha yoğun olduğu yönleri tercih etme olasılıkları feromonun daha az olduğu yönleri tercih etme olasılıklarından daha fazladır. Bunun nedeni karıncaların gidecekleri yönü seçerken feromon maddesinin salgıladığı

54 38 koku miktarına göre tercihte bulunmalarıdır. Örneğin yola Şekil 3.3 deki gibi bir cismin konulduğu ilk durumu düşünelim. Bu durumunda cismin hemen önünde ve arkasında yer alan karıncalar tercih edilmesi gereken feromonsuz yönlerle karşılaşırlar, dolayısıyla da iki yönden birini rastgele seçerler (Karaboğa, 2004). Olasılık prensibine göre karıncaların yarısının bir yönü kalan yarısının diğer yönü tercih etmesi beklenir. Bu durumda kısa yolu tercih eden karıncalar birim zamanda daha fazla gidiş geliş yapacağı için zamanla kısa yolda biriken feromon miktarı uzun yola göre daha fazla olur. Yön tercihlerini feromon salgısının yaydığı koku miktarına göre yapan karıncalar da feromon salgısının daha yoğun olduğu kısa yolu tercih etmeye başlarlar. Böylece bu yöndeki feromon miktarı daha da artar ve bu pozitif geri beslemeye benzer mekanizma sayesinde bir süre sonra karınca kolonisinin tamamı Şekil 3.3 te görülen biçimde kısa yolu kullanmaya başlar. Şekil 3.3: Engele rağmen en kısa yolu izleyen karınca kolonisi

55 Temel karınca kolonisi algoritmaları Karınca kolonisi algoritmaları yukarıda sözü edilen, karınca kolonilerinin pozitif geri besleme ile değişen duruma uyum sağlayarak en uygun yolu bulmalarına yarayan sistemi modellemeye çalışırlar. Bunu gerçekleştirmek için problemi temsil eden çizge üzerinde dolaşan sanal karıncalar kullanırlar. İlk karınca kolonisi algoritması Dorigo tarafından önerilen.karınca Sistemi (Ant System) algoritmasıdır ve bu algoritma gezgin satıcı problemine çözüm üretebilmek amacıyla kullanılmıştır. Karınca sistemi algoritması başlangıçta Karınca Çevrim (Ant Cycle), Karınca Yoğunluk (Ant Density) ve Karınca Miktar (Ant Quantity) olmak üzere üç temel algoritmadan oluşmaktaydı, ancak daha sonra bu sayı bire (Karınca Çevrim) indi. Karınca Sistemi algoritmasında bir şehirden diğer bir şehre gidilmesi üç temel bilgiye bağlıdır. Bunlar, ziyaret edilmemiş şehirlerin listesi (tabu list), iki şehir arasındaki uzaklığın çarpmaya göre tersi (1/d) olan görünürlük değeri ve her kenarda biriken feromon miktarıdır. Bu bilgilerden görünürlük, sabit ve sezgisel seçilimi, feromon miktarı ise değişebilen ve öğrenilmiş seçilimi sağlar. Bu bilgilerle birlikte karınca sistemi algoritmasında biri α (alfa) diğeri de β (beta) olarak adlandırılan iki temel parametre vardır. Alfa değeri 0 olduğunda yalnızca görünürlüğe göre seçim yapılır ve algoritma stokastik bir açgözlü (greedy) arama algoritmasına dönüşür. Beta değerinin 0 olması durumunda ise sadece feromon miktarına göre seçim yapılacağından en iyi çözüme ulaşmak mümkün olmaz. Bu nedenle her iki parametrenin de belirli oranda katılması gerekir. Diğer önemli parametreler de karınca

56 40 sayısı ve tur sayısıdır. Karınca sayısının çok fazla olması yerel minimumlara takılmaya neden olmakta, az olması ise algoritmanın yeterince etkin olamamasına yol açmaktadır. Bu nedenle karınca sayısının şehir sayısı ile eşit olması uygun görülmüştür. Tur sayısının arttırılması ise daha iyi çözümler bulmayı sağlar, ancak gereğinden fazla arttırılması algoritmanın çalışma süresinin uzamasına neden olur. Sonuç olarak karınca sistemi algoritması en iyi çözümü bulmayı garanti etmeyen, en iyiye yakın sonuçlar bulabilen bir algoritmadır. Daha çok, küçük ölçekli (70 şehirden az) gezgin satıcı problemlerinde güzel sonuçlar verir. Daha büyük ölçekli gezgin satıcı problemlerinde ise istenilen verim elde edilemez. Karınca sistemi algoritmasını güçlendirmek amacıyla bazı yaklaşımlar geliştirilmiştir. Bu yaklaşımlardan biri bazı karıncaların seçkinci (elitist) olarak seçildiği ve bunların o anki bulunan en iyi çözüm üzerine feromon bıraktığı Seçkinci Strateji (Elitist Strategy) tekniğidir. Bir diğer yaklaşım ise sadece mevcut tur için seçilen belli sayıda karıncanın feromon bırakabildiği ve o anki en iyi tur üzerine feromon bırakılan Sıra Tabanlı Karınca Sistemi (Rank Based Ant System) tekniğidir. Karınca Kolonisi Sistemi Algoritması ise Karınca Sistemi Algoritmasıyla temel olarak üç yönde farklılık gösterir. Bunlar durum değiştirme kuralının farklı olması, tur sonundaki global feromon güncellemenin sadece en iyi tur üzerinde uygulanması ve karıncaların çözümü oluştururken yerel feromon güncellemesi yapmalarıdır. Yerel feromon güncellemesi karınca sistem algoritmasının yerel arama konusundaki zayıf yönünü güçlendiren bir yaklaşım olması bakımından oldukça önemlidir.

57 Karınca kolonisi algoritmalarının uygulama alanları Karınca kolonisi algoritmalarının günümüzdeki uygulama alanlarını da tıpkı genetik algoritmalarda olduğu gibi temelde iki ana gruba ayırabiliriz. Bunların ilki mevcut diğer eniyileme yöntemlerine karşı karınca kolonisi algoritmalarının üstünlüğünü ispat etmek amacı ile belirli problemleri çözmede karınca kolonisi algoritmalarının kullanıldığı deneysel ve araştırmaya dayalı uygulamalardır. İkinci grup ise karınca kolonisi algoritmalarının endüstride ve diğer gerçek dünya problemlerinin çözümünde kullanıldığı pratik uygulamalardır. Karınca kolonisi algoritmaları özellikle çizge tabanlı kombinasyonel eniyileme problemlerinin çözümünde yaygın olarak kullanılmaktadır. Bunun yanı sıra araç rotalarının belirlenmesi, çizge renklendirme ve parçalama problemlerinin çözümü ve fonksiyon optimizasyonu gibi amaçlarla da kullanılmaktadırlar. Ders programı hazırlama gibi çizelgeleme problemlerinin çözümünde, dağıtık bilgisayar ağlarının tasarlanmasında, dağıtık bilgisayar ağlarındaki kaynak ve dosya paylaşım problemlerinin çözümünde de karınca kolonisi algoritmalarından yararlanılmaktadır. Ayrıca British Telecom tarafından karınca kolonisi algoritmaları kullanılarak ağ yönlendirme ve dinamik yük paylaşımı amaçlı uygulamalar geliştirilmiştir. 3.4 k-opt Özellikle gezgin satıcı problemi gibi eniyileme problemlerinin çözümünde kullanılan k-opt, bir yerel arama tekniğidir. k-opt için k değeri 2 ya da daha büyük bir sayı olabilmekle birlikte en çok kullanılan

58 42 yöntemler 2-opt ve 3-opt dur. Yerel aramanın gücünü arttırmalarına rağmen 4-opt ya da 5-opt gibi yöntemlerin kullanılmamalarının nedeni k- opt algoritmasının zaman karmaşıklığının üstel olarak artmasıdır. Örneğin 4-opt için zaman karmaşıklığı O(n 4 ), 5-opt için ise O(n 5 ) tir. Bu nedenle küçük kapsamlı problemlerde 2-opt, daha geniş kapsamlı problemlerde ise 3-opt tekniği kullanılır. Aşağıda bu iki teknik ve uygulanışları hakkında bilgiler verilmiştir opt İlk kez 1958 yılında Croes tarafından gezgin satıcı probleminin çözümünde kullanılmak üzere ortaya atılmış olan 2-opt, genellikle eniyileme problemlerine çözüm üretmek amacıyla kullanılan bir yerel arama tekniğidir. Yerel arama teknikleri, global arama yöntemlerindeki rastgeleliği azaltarak daha çok sonuca odaklı bir arama yaparlar. Böylece sonuca daha kısa sürede ulaşmamızı sağlarlar. Ancak tek başlarına kullanıldıklarında yerel minimumlara takılmaya neden olabilirler. Bunun yanında global arama yöntemleri ile birlikte kullanıldıklarında ise oldukça olumlu sonuçlar verirler. Buna örnek olarak gezgin satıcı probleminin çözümünde bir global arama yöntemi olan genetik algoritmalar ile bir yerel arama tekniği olan 2-opt un birlikte kullanılmasını verebiliriz. Gezgin satıcı probleminin çözümünde en çok kullanılan yerel arama yöntemlerinden biri olan 2-opt tekniğinde bir turu oluşturan kenarlardan ikisinin Şekil 3.4 ün 2-opt öncesi tur bölümündeki gibi silinmesiyle tur iki parçaya ayrılır ve daha sonra bu parçalar Şekil 3.4 ün

59 43 2-opt sonrası tur bölümündeki gibi ters çevrilerek birleştirilir. 2-opt sonrası oluşan kenarların (2-3 ve 6-7) uzunluklarının toplamının, 2-opt öncesindeki kenarların (2-6 ve 3-7) uzunlukları toplamından daha az olması durumunda daha iyi bir tur elde edilmiş olur aksi durumda ise turu daha kötü bir hale getirmemek için kenarlar önceki konumlarında bırakılırlar. Şekil 3.4: 2-opt yerel arama tekniği (Özkan vd., 2008) Yukarıda anlatılan işlemin turu oluşturan tüm kenar çiftlerine uygulanmasıyla, tur 2-opt ile eniyilenmiş olur. 2-opt un genetik algoritmalar gibi global arama yöntemleri ile birlikte kullanıldığı durumlarda, işlemin zaman karmaşıklığının O(n 2 ) olmasından dolayı tüm bireyler değil sadece belirli bireyler 2-opt ile eniyilenerek performans kazancı sağlanabilir. Bir tur üzerinde 2-opt işlemini gerçekleştirmek için öncelikle turun ilk iki şehri seçilir. Daha sonra bu iki şehir ile turu oluşturan diğer şehir çiftleri sırayla seçilerek dört şehirlik gruplar oluşturulur. Her grup için Şekil 3.4 deki bağlantının ters çevrilip birleştirilmesi işleminin yaratacağı sonuç hesaplanır. İlk iki şehrin arasındaki kenar bağlantısıyla hangi şehir çiftinin kenar bağlantısı ters çevrilip birleştirildiğinde kenarlar

60 44 toplamındaki azalma en fazla oluyorsa o kenar ile ilk iki şehri birbirine bağlayan kenar, Şekil 3.4 dekine benzer biçimde ters çevrilip birleştirilir. Eğer ilk iki şehrin arasındaki kenar bağlantısıyla hiçbir şehir çiftinin kenar bağlantısının ters çevrilip birleştirilmesi kenarlar toplamında azalmaya neden olmuyorsa herhangi bir işlem yapılmaz. Daha sonra ilk iki şehir arasındaki kenar için gerçekleştirilen bu işlemler sırayla turu oluşturan tüm kenarlar için tekrarlanır. Böylece tur 2-opt ile eniyilenmiş olur. Aşağıda uygulamada 2-opt işlemini gerçekleştiren kod parçacığına yer verilmiştir. Kodda bulunan calculatedistance(c1,c2) metodu iki şehir arasındaki maliyeti (buradaki maliyet öklit uzaklığıdır) hesaplayan metottur, cl ise şehirleri turu oluşturdukları sırada içeren veri yapısıdır. public void optimize() { City t,t2,t3,t4; double distance, distance2; double maxdist = 0; int ind1 = -1; int ind2 = -1; for (int i=0; i<cl.size()-1; i++) { ind1 = -1; ind2 = -1; maxdist = 0; t = (City) cl.elementat(i); t2 = (City) cl.elementat(i+1); for (int j=i+1; j< cl.size(); j++) { t3 = (City) cl.elementat(j); t4 = (City) cl.firstelement(); if(j< cl.size()-1) {

61 45 t4 = (City) cl.elementat(j+1); } distance = calculatedistance(t, t2); distance += calculatedistance(t3, t4); distance2 = calculatedistance(t, t3); distance2 += calculatedistance(t2, t4); if ((distance - distance2) > maxdist ) { maxdist = distance - distance2; ind1 = i; ind2 = j; } } if(ind1!=-1) { int j=ind2; for(int k=ind1+1; j>=(k+1); k++) { t = (City) cl.elementat(k); t2 = (City) cl.elementat(j); if ((j % cl.size()) >(k % cl.size())) { cl.removeelementat(j% cl.size()); cl.removeelementat(k%(cl.size()+1); cl.insertelementat(t2,k%(cl.size()+2)); cl.insertelementat(t,j% (cl.size()+1)); } else

62 46 } { cl.removeelementat(k% cl.size()); cl.removeelementat(j% cl.size()+1); cl.insertelementat(t,j% (cl.size()+2)); cl.insertelementat(t2,k%(cl.size()+1)); } j--; } } } setfitness(fitnessfunction()); opt 3-opt genellikle çok fazla şehir içeren gezgin satıcı problemi gibi geniş kapsamlı eniyileme problemlerine çözüm üretmek amacıyla kullanılan bir yerel arama tekniğidir. 2-opt tekniği, küçük ve orta ölçekli problemler için yeterli olmakla birlikte büyük problemlerde yetersiz kalabilir. Bu gibi durumlarda 3-opt un kullanımı başarılı sonuçlar vermiştir. 3-opt tekniğinde bir turu oluşturan kenarlardan üçünün Şekil 3.5 in 3-opt öncesi tur bölümündeki gibi silinmesiyle tur üç parçaya ayrılır ve daha sonra bu parçalar Şekil 3.5 in 3-opt sonrası tur bölümündeki gibi uygun sırada birleştirilir. 3-opt sonrası oluşan kenarların (3-4, 6-7 ve 9-1) uzunluklarının toplamının, 3-opt öncesindeki kenarların (3-7, 6-1 ve 9-4) uzunlukları toplamından daha az olması durumunda daha iyi bir tur elde

63 edilmiş olur aksi durumda ise turu daha kötü bir hale getirmemek için kenarlar önceki konumlarında bırakılırlar. 47 Şekil 3.5: 3-opt yerel arama tekniği Yukarıda anlatılan işlemin turu oluşturan tüm kenar üçlülerine uygulanmasıyla, tur 3-opt ile eniyilenmiş olur. Tıpkı 2-opt da olduğu gibi 3-opt un da genetik algoritmalar gibi global arama yöntemleri ile birlikte kullanıldığı durumlarda, işlemin zaman karmaşıklığının O(n 3 ) olmasından dolayı, tüm bireyler değil sadece belirli bireyler 3-opt ile eniyilenerek performans kazancı sağlanabilir. Böyle bir durumda genellikle elit bireyler 3-opt işlemine tabi tutulmak üzere seçilirler. Bir tur üzerinde 3-opt işlemini gerçekleştirmek için öncelikle turun ilk iki şehri seçilir. Daha sonra bu iki şehir ile turu oluşturan diğer şehir çiftleri sırayla ikişerli gruplar halinde seçilerek altı şehirlik gruplar oluşturulur. Her grup için Şekil 3.5 deki gibi bağlantılar kaldırılıp farklı bağlantı olasılıklarının yaratacağı sonuçlar hesaplanır. Bu altı şehri bağlayan üç kenarın maliyetleri toplamını en aza indiren sıralama Şekil 3.5 dekine benzer biçimde seçilir ve uygulanır. Eğer ilk iki şehir için

64 48 oluşturulan bu altı şehirlik grupların hiçbirinde farklı bağlantılar, bu üç kenarın toplam maliyetini mevcut bağlantılardan daha aşağıya çekemiyorsa herhangi bir işlem yapılmaz. Daha sonra ilk iki şehir arasındaki kenar için gerçekleştirilen bu işlemler sırayla turu oluşturan tüm kenarlar için tekrarlanır. Böylece tur 3-opt ile eniyilenmiş olur.

65 49 4. ÖNCEKİ ÇALIŞMALAR 4.1 Gezgin Satıcı Problemi ile İlgili Çalışmalar Gezgin satıcı probleminin ilk kez ortaya atıldığı 1800 lü yıllardan bu yana araştırmacılar, probleme çözüm üretebilmek için birçok çalışma gerçekleştirmiştir. Bu çalışmalar boyunca çok sayıda farklı yöntem geliştirilmiş, farklı yöntemler geliştirildikçe de daha iyi sonuçlara ulaşılmıştır. Bu bölümde önceki yıllarda yapılan çok sayıda çalışma içerisinden önemli oldukları düşünülen birkaç tanesine değinilmiştir. Bunlardan biri Sengoku ve Yoshiara nın Java ile Genetik Algoritmaları Kullanan Hızlı Bir GSP Çözücü (A Fast TSP Solver Using GA on Java) (Sengoku and Yoshiara, 1998) adlı çalışmasıdır. Sengoku ve Yoshiara 1998 yılında gerçekleştirdikleri çalışmada gezgin satıcı probleminin çözümü için genetik algoritmalarla yerel arama sezgilerini birleştiren melez bir yaklaşım kullanarak bir algoritma geliştirdiler. Geliştirdikleri bu algoritmayı Java ile applet olarak programlayarak kullanıcılara ağ üzerinden kendi veri setlerine çözüm bulma ve buldukları çözümleri karşılaştırma olanağı sundular. Sengoku ve Yoshiara, problem hakkında herhangi bir bilgiye sahip olmadan çalışan genetik algoritmaların tek başlarına kullanıldıklarında yeterince hızlı olmadıklarını belirttiler. Bu nedenle de genetik algoritmalarla birlikte 2-opt yerel arama tekniğini de kullandılar. Çalışmanın bu denli önemli olmasının nedeni ise mutasyon aşamasında 2-opt un, çaprazlama aşamasında ise Sengoku ve Yoshiara nın birlikte geliştirdikleri, oldukça etkin bir sıralı çaprazlama tekniği olan Açgözlü

66 50 Alt-tur Çaprazlama (Greedy Subtour Crossover - GSX) yönteminin kullanılmasıdır. GSX, özellikle yerel minimumlardan kurtulma konusunda oldukça etkili bir yöntemdir. Sengoku ve Yoshiara, çalışmalarında GSX in yerel minimumlardan kurtulma konusunda benzetimli tavlamaya göre daha etkili bir yöntem olduğunu belirtmişlerdir. GSX in etkili olmasının nedeni klasik çaprazlama yöntemlerinin aksine çaprazlama işlemine kromozomun başından başlayıp sağa doğru ilerlemek yerine Şekil 4.1 deki gibi çaprazlama noktasından başlayıp iki yöne doğru olarak ilerlemesidir. Şekil 4.1: GSX çaprazlama yöntemi (Sengoku and Yoshiara, 1998). GSX yöntemi uygulanırken öncelikle kromozomun güzergah listesinden rastgele bir şehir seçilir. Seçilen şehrin Şekil 4.1 deki gibi C şehri olduğunu varsayalım. Bu durumda C şehrinin konumu her iki ebeveynde de bulunur ve C şehri yeni bireye eklenir. İlk ebeveyn, seçilen şehrin bulunduğu konumdan sola doğru ikincisi ise sağa doğru dolaşılır. Bu dolaşma sırasında C şehrinden önceki (kromozomda solunda bulunan) şehirler yeni bireyde C şehrinin soluna, sonraki şehirler ise

67 51 sağına eklenir. Dolaşma herhangi bir yönde yeni bireye eklenmiş bir şehre ulaşıldığında sonlandırılır. Dolaşma her iki yönde de durduysa ve hala yeni birey tamamen dolmadıysa, kalan şehirler yeni bireye karışık sırayla eklenir. Sengoku ve Yoshiara bu tekniklerle birlikte genetik algoritmalar bölümünde anlatılan seçkincilik yaklaşımını da kullanmışlardır. Seçkinciliği hem uygunluk değeri yüksek olan bireylerin doğrudan seçilmesi anlamında hem de uygunluk değeri çok düşük olan bireylere seçilme şansı tanınmaması anlamında kullanmışlardır. Sonuç olarak geliştirdikleri algoritma, çalışmanın yapıldığı yıl olan 1998 itibariyle düşünüldüğünde oldukça başarılı olmuştur. Sengoku ve Yoshiara nın geliştirdikleri uygulamaya adresinden ulaşılabilir. Pullan ise 2003 yılında yayınladığı Genetik Algoritmaları Gezgin Satıcı Problemi ne Uyarlamak (Adapting Genetic Algorithms to Traveling Salesman Problem) (Pullan, 2003) adlı bildirisinde, yerel arama sezgileri ile genetik algoritmaların birlikte kullanımının GSP nin çözümündeki etkinliğine değinmiştir. Pullan bu melez yaklaşımın yalnızca GSP için değil, GSP ye benzer biçimde modellenebilen ağ problemleri için de etkin olduğunu savunmuştur. Bu etkinliği yerel arama sezgilerinin arama alanını küçültmelerine, genetik işlemcilerin ise geçersiz turların yaratılmasını engelleyerek alt-optimal şemanın oluşturulmasına yardımcı olmalarına bağlamıştır. Pullan bahsettiği melez yöntemi bir algoritma haline getirmiş ve elde ettiği deneysel sonuçlarla yöntemin etkinliğini ortaya koymuştur.

68 52 Ray, Bandyopadhyay ve Pal 2004 yılında yayınladıkları Gezgin Satıcı Problemi için Genetik Algoritmaların Yeni İşlemcileri (New Operators of Genetic Algorithms for Traveling Salesman Problem) (Ray et al., 2004) adlı bildiride yeni bir bilgi temelli çoklu ters çevirme (multiple inversion) operatörü ile bir bilgi temelli komşuluk yer değiştirme (neighborhood swapping) operatörü önermişlerdir. Bilgi temelli çoklu ters çevirme operatörü doğal seçilimden hemen önce, bilgi temelli komşuluk yer değiştirme operatörü ise çaprazlama ve mutasyon evrelerinin arasında kullanılmaktadır. Takahashi ise 2005 yılında gerçekleştirdiği Gezgin Satıcı Problemini Değişken Çaprazlama İşlemcileri ile Genetik Algoritmalar Aracılığıyla Çözmek (Solving the Traveling Salesman Problem through Genetic Algorithms with Changing Crossover Operators) (Takahashi, 2005) adlı çalışmada GSP nin çözümü için geliştirdiği genetik algoritmada, oldukça farklı bir çaprazlama yöntemi önermiştir. Değişken Çaprazlama İşlemcileri (Changing Crossover Operators - CXO) adını verdiği bu yaklaşım genetik algoritmanın çalışması sırasında mevcut çaprazlama operatörünün, herhangi bir anda uygun bir başka çaprazlama operatörü ile esnek olarak değiştirilebilmesini sağlamaktadır. Takahashi çalışması sırasında elde ettiği deneysel sonuçlar ışığında geliştirmiş olduğu CXO yaklaşımının yalnızca bir çaprazlama yöntemi kullanan genetik algoritmalardan daha etkin olduğunu belirtmiştir.

69 Dinamik Gezgin Satıcı Problemi ile İlgili Çalışmalar Gezgin satıcı problemine çözüm üretebilmek için çok sayıda çalışma yapılmış olmasına rağmen gerçek dünya problemlerine uyarlanabilirliği daha fazla olan dinamik gezgin satıcı problemi ile ilgili yapılan çalışma sayısı oldukça azdır. Bunun en önemli nedeni Dinamik GSP nin, GSP ye göre daha zor bir problem olmasıdır (Li et al., 2006). Bu bölümde Dinamik GSP ye çözüm üretebilmek için önceki yıllarda yapılan az sayıda çalışma içerisinden önemli oldukları düşünülen üç tanesine değinilmiştir. Bunlardan biri Zhou, Kang ve Yan ın 2003 yılında yayınlanan Dinamik GSP yi Evrimsel Yaklaşımlarla Gerçek Zamanlı Olarak Çözmek (Solving Dynamic TSP with Evolutionary Approaches in Real Time) (Zhou et al., 2003) adlı çalışmalarıdır. Zhou, Kang ve Yan, bildirilerinde gerçek dünyaya ilişkin birçok eniyileme probleminin gerçek zamanlı olmalarından dolayı dinamik GSP ile modellenebileceklerini ve dinamik GSP nin zamana bağlı olarak değişime uğradığı için GSP den daha zor bir problem olduğunu belirtmişlerdir. Evrimsel algoritmaların dinamik GSP nin çözümünde oldukça etkin olduklarını savunmuşlar ve kendi tanımladıkları üç dinamik işlemciyi (Ekle Sil Değiştir) evrimsel algoritmalara ekleyerek yeni bir algoritma geliştirmişlerdir. Bu üç işlemcinin algoritmik gösterimi aşağıda yer almaktadır.

70 54 Ekle (C*) Topluluktaki her tur için; Turdaki şehirler içerisinden C* şehrine en yakın şehri (C) bul. C nin turdaki iki komşusu olan CL ve CR şehirlerini bul. Yeni turu (tur-l) oluşturmak için C* şehrini CL ve C arasına ekle ve uzunluğunu (uzunluk-l) hesapla. Yeni turu (tur-r) oluşturmak için C* şehrini C ve CR arasına ekle ve uzunluğunu (uzunluk-r) hesapla. Eğer uzunluk-l < uzunluk-r ise; Mevcut turu tur-l ile değiştir. Değilse; Mevcut turu tur-r ile değiştir. Topluluktaki turlar bitene kadar başa dön. Sil (C) Topluluktaki her tur için; C nin turdaki iki komşusu olan CL ve CR şehirlerini bul. Turdan C şehrini sil ve CL ile CR şehirlerini birbirlerine bağlayarak yeni turu (tur*) oluştur. Mevcut turu tur* ile değiştir. Topluluktaki turlar bitene kadar başa dön.

71 55 Değiştir (C) Değiştir(C,C*) = Sil(C) + Ekle(C*) Değiştirme işlemi yukarıda anlatılan silme ve ekleme işlemlerinin arka arkaya gerçekleştirilmesi ile sağlanır. Önce değiştirilecek şehir, silme işlemcisi kullanılarak silinir, daha sonra da ekleme işlemcisi ile yeni konumuna eklenir. Zhou, Kang ve Yan, tanımladıkları bu üç işlemciyle evrimsel algoritmaları birleştirerek geliştirdikleri yönteme ilişkin deneysel sonuçları bildirilerinde sunmuşlar ve böylece yöntemin etkinliğini ortaya koymuşlardır. Liu ve Kang, 2004 yılında gerçekleştirdikleri Dinamik GSP yi Çözmek İçin GA ve N-Opt un Melez Bir Algoritması (A Hybrid Algorithm of N-Opt and GA to Solve Dynamic TSP) (Liu and Kang, 2004) adlı çalışmalarında Dinamik GSP nin karakteristik özelliklerini ortaya koymuşlar, bu özelliklere en uygun olan yöntemin genetik algoritmalar ile 2-opt ve 3-opt algoritmalarının bir arada kullanıldığı melez bir yöntem olduğunu ileri sürmüşlerdir. Liu ve Kang ın bu melez yöntem doğrultusunda geliştirdikleri algoritma aşağıda yer almaktadır. Adım 1. Nesil_No = 0; Adım 2. Başlangıç topluluğunu oluştur. Adım 3. Program sonlandırılana kadar tekrarla Adım 3.1. Nesil_No yu 1 arttır.

72 56 Adım 3.2. Gerekliyse yeni şehir ekle. Adım 3.3. Gerekliyse şehir sil. Adım 3.4. Gerekliyse kenarların ağırlıklarında değişiklik yap. Adım 3.5. Topluluk(Nesil_No -1) den Topluluk(Nesil_No) için ebeveyn seç. Adım 3.6. Seçtiğin ebeveynleri yeni birey oluşturmak için çaprazla. Adım 3.7. Yeni birey üzerinde mutasyon işlemi uygula. Adım 3.8. Yeni bireyi 2-opt ile eniyile. Adım 3.9. Topluluk (Nesil_No) yu değerlendir. Adım 3.10 Gerekliyse en iyi çözümü 3-opt ile eniyile. Adım 3.11 Mevcut en iyi çözümü görüntüle Program sonlandırılmadıkça Adım 3 e dön. Liu ve Kang, bildirilerinde yukarıdaki algoritmayı kullanarak geliştirdikleri uygulamadan elde ettikleri deneysel sonuçları sunmuşlar ve bu deneysel sonuçların algoritmanın etkinliğini ortaya koyduğunu belirtmişlerdir. Sipahioğlu, Yazıcı, Parlaktuna ve Gürel ise 2008 yılında gerçekleştirdikleri Dinamik bir Ortamda Mobil Robot için Gerçek Zamanlı Tur Oluşturma (Real Time Tour Construction for a Mobile Robot in a Dynamic Environment) (Sipahioğlu vd., 2008) adlı

73 57 çalışmalarında dinamik GSP ye benzer bir problem üzerine odaklanmışlardır. Mobil robotların hasta ve yaşlı insanlara hizmet etme amaçlı kullanıldığı hastane gibi ortamlarda robot, başlangıç noktasından yola çıkarak servis vereceği noktaları (hastaları) dolaşır. Ancak dolaşma başladıktan sonra servis verilmesi gereken yeni noktalar ortaya çıkabilir. Sipahioğlu, Yazıcı, Parlaktuna ve Gürel in üzerinde çalıştıkları bu problem aslında dinamik GSP tabanlı bir dolaşma problemidir. Yapılan çalışmada başlangıç durumundaki tur uzunluğu Savings Algorithm kullanılarak bulunmuştur. Başlangıçtan sonra ortamda gerçekleşen dinamik değişiklikler için ise Djikstra nın en kısa yol (shortest path) algoritması kullanılarak maliyet matrisi güncellenmiş ve en iyi tur yeni maliyet matrisine göre oluşturulmuştur. Çalışmada bu yöntemle elde edilen deneysel sonuçlar da sunulmuştur.

74 58 5. DİNAMİK GSP KÜTÜPHANESİ 5.1 Kullanılan Yöntem ve Metodolojiler Tez projesi kapsamında statik ve dinamik gezgin satıcı problemleri ile bu problemlerle modellenebilen pratik uygulamalara çözüm üretecek bir dinamik gezgin satıcı problemi kütüphanesi geliştirilmiştir. Java ortamında nesneye dayalı tasarım ve programlama mantığıyla geliştirilen kütüphane esnek ve genişletilebilirdir. Kütüphane, uygulama geliştiricilere hızlı ve kolay bir biçimde eniyileme algoritmalarını oluşturma olanağı tanımaktadır. Bunun yanında uygulama geliştiricilere genetik algoritmada kullanılacak seçilim yöntemi (Sıralı, Rulet Tekerleği, Turnuva), genetik algoritmanın topluluk büyüklüğü, maksimum nesil sayısı, çaprazlama oranı, mutasyon oranı, 2-opt işleminin uygulanma oranı, 3-opt işleminin uygulanma oranı ve hedeflenen uzaklık (GSP ve dinamik GSP için) gibi kriterleri belirleme esnekliğini sunmaktadır. Dinamik gezgin satıcı probleminin çözümü için geliştirilen kütüphanenin temelini oluşturan eniyileme algoritması, genetik algoritmalarla yerel arama tekniklerinin bir arada kullanıldığı bir algoritmadır. Yerel arama tekniği olarak 2-opt ve 3-opt teknikleri kullanılmıştır. Oluşturulan genetik algoritmayı ele alacak olursak algoritma, dinamik gezgin satıcı problemine çözüm üretmek amacıyla oluşturulduğundan kromozomların kodlanması aşamasında permutasyon kodlama tekniği kullanılmıştır. Bu tercih dinamik gezgin satıcı probleminin bir sıralama problemi olmasından kaynaklanmaktadır. Daha

75 59 önce de belirtildiği gibi permutasyon kodlamada her kromozom, ilgili karakterin sıralamadaki pozisyonunu belirten sayılardan oluşan bir dizi ile ifade edilir. Dinamik gezgin satıcı problemi nde de bir kromozomu oluşturan karakter dizisi, şehirlerin hangi sıra ile dolaşılacağını belirler. Algoritma belirli bir problem örneği için değil, genel amaçlı olarak üretilmiştir. Bu nedenle de başlangıç topluluğu belirli değerlerle değil, tamamıyla rastgele olarak oluşturulmuştur. Uygulama geliştiriciler topluluk büyüklüğü parametresiyle başlangıç topluluğunun ve daha sonraki nesiller için oluşturulacak toplulukların içerecekleri birey sayısını belirleyebilirler. Seçilim aşamasında kütüphane, uygulama geliştiricilere en yaygın olarak kullanılan üç seçilim yönteminden (Sıralı Seçilim, Rulet Seçilimi ve Turnuva Seçilimi) birini seçme olanağını sunmaktadır. Bahsi geçen seçilim yöntemlerinin işleyişlerine, avantajlarına ve dezavantajlarına Genetik Algoritma Süreci bölümünde değinilmiştir. Çaprazlama aşamasında ise işleyişine 4.1 Gezgin Satıcı Problemi ile İlgili Çalışmalar bölümünde değinilmiş olan, Sengoku ve Yoshiara tarafından gezgin satıcı probleminin çözümü için önerilen Greedy Subtour Crossover (GSX) yöntemine benzer bir yaklaşım kullanılmıştır. Kullanılan çaprazlama mantığının GSX ten farkı ise kalan şehirlerin yeni bireye rastgele değil, ebeveynlerdeki sıralarına uygun olarak yerleştirilmesidir. İşleyişi diğer çaprazlama yöntemlerinden farklı olan bu yöntemin tercih edilmesinin nedeni gezgin satıcı probleminin çözümü için üretilmiş olması ve bu problemin çözümünde yerel minimumlardan kurtulma konusunda, benzetimli tavlama gibi diğer birçok yöntemden daha başarılı olmasıdır. Mutasyon safhasında klasik bir permutasyon

76 60 kodlama mutasyonu olan iki şehrin konumunun rastgele olarak değiştirilmesi yaklaşımı uygulanmıştır. Mutasyon sonrası optimizasyon uygulandığından kullanıcıların ve uygulama geliştiricilerin mutasyon oranını düşük tutmalarına gerek yoktur. Bunların yanında genetik algoritmada seçkinci yaklaşım da kullanılmıştır. Mevcut toplulukta bulunan en iyi bir ya da iki birey (topluluk büyüklüğünün tek ya da çift sayı olmasına göre) doğrudan yeni nesle aktarılarak bu bireylerin kaybedilmesi önlenmiştir. Yukarıda anlatılan genetik algoritmanın özellikle geniş kapsamlı problemlerde yerel minimumlara takılmasını önlemek için 2-opt ve 3-opt yerel arama tekniklerinden yararlanılmıştır. Optimizasyon işlemleri; seçilim, çaprazlama ve mutasyon işlemleri sonunda oluşturulan yeni neslin en iyi belirli sayıda bireyine uygulanmıştır. Örneğin topluluk büyüklüğünün 50, 2-opt oranının 0.5, 3-opt oranının ise 0.1 olduğu bir durumda mevcut neslin en iyi 25 bireyi 2-opt, en iyi 5 bireyi de 3-opt işlemine tabi tutulacaktır. Kütüphaneyi kullanacak uygulama geliştiricilerin optimizasyon işlemleri ile ilgili bu oranları belirlerken dikkat etmeleri gereken husus bu oranların arttırılmalarının çözüm kalitesiyle birlikte çalışma zamanını da arttırmasıdır. Bu eniyileme algoritmasını dinamikleştirmek için ise Zhou, Kang ve Yan ın 4.2 Dinamik Gezgin Satıcı Problemi ile İlgili Çalışmalar bölümünde değinilen çalışmalarındaki mantığa benzer bir yaklaşım kullanılmıştır. Öncelikle genetik algoritmanın çalışması sırasında eklenecek ya da silinecek şehirlerle kromozomların büyüklüğü değişeceğinden, kromozom yapısı esnek ve genişletilebilir olarak tasarlanmıştır. Genetik algoritmanın çalışması sırasında bir şehir

77 61 eklendiğinde ise, mevcut toplulukta bulunan her turda bu şehre en yakın olan şehrin konumu bulunur. Eklenecek şehir, kendisine en yakın konumda bulunan şehirle turda bu şehirden bir önceki sırada bulunan şehir arasına yerleştirildiğinde oluşan tur uzunluğuyla, kendisine en yakın konumda bulunan şehirle turda bu şehirden bir sonraki sırada bulunan şehir arasına yerleştirildiğinde oluşan tur uzunluğu karşılaştırılır. Hangi durumda tur uzunluğu daha kısa ise şehir ilgili turda o konuma yerleştirilir. Yerel arama mantığıyla gerçekleşen bu ekleme genelde Şekil 5.1 de görüldüğü gibi en iyi sonucu verir. Ancak Şekil 5.2 deki gibi bazı uç durumlarda en iyi sonucu vermeyebilir. Böyle bir durumda ise global eniyilemenin gücü devreye girer ve bir sonraki nesilde bu durum düzelir. Şekil 5.1: Dinamik Şehir Ekleme Olumlu Sonuç Şekil 5.2: Dinamik Şehir Ekleme Olumsuz Sonuç - Düzeltilmesi

78 62 Genetik algoritmanın çalışması sırasında bir şehir silindiğinde ise, mevcut toplulukta bulunan her turda bu şehir bulunur ve ilgili turdan silinir. Yerel arama mantığıyla gerçekleşen bu silme işlemi de genelde Şekil 5.3 de görüldüğü gibi en iyi sonucu verir. Şekil 5.3: Dinamik Şehir Silme Olumlu Sonuç 5.2 Tasarım ve Gerçekleştirim Dinamik gezgin satıcı problemi kütüphanesi oluşturulurken, uygulamanın esnek ve genişletilebilir olması amacıyla nesneye dayalı analiz, tasarım ve programlama yaklaşımları kullanılmıştır. Bu nedenle de kütüphanenin geliştirilmesi için Java platformu tercih edilmiştir. Genetik algoritma ve yerel arama tabanlı eniyileme kütüphanesi üç sınıftan oluşmaktadır. Bunlardan biri şehirlere ilişkin bilgileri tutan temel şehir sınıfıdır (City). Bir diğeri de dinamik gezgin satıcı probleminin olası çözümleri için şehir dizilerini ve çözümlerin uygunluk değerlerini içeren kromozom sınıfıdır (Chromosome). Üçüncüsü ve en önemlisi ise dinamik gezgin satıcı probleminin çözümü için geliştirilen eniyileme algoritmasının, seçilim, çaprazlama, mutasyon gibi genetik operatörler ve

79 63 2-opt ile 3-opt gibi yerel arama teknikleri kullanılarak uygulandığı eniyileme sınıfıdır (TSPMain). Dinamik gezgin satıcı problemi kütüphanesinin sınıf diyagramı Şekil 5.4 de görülmektedir. Şekil 5.4: Dinamik GSP kütüphanesinin sınıf diyagramı City sınıfı şehirlerin numaraları (cityid), adları (name) ve haritadaki konumları (xpos ve ypos) gibi bilgileri saklayan bir taşıyıcı sınıftır. Chromosome sınıfı ise kromozom numarası (chroid),

80 64 kromozomu oluşturan turun şehir sırası (citylist) ve kromozomun uygunluk değeri (fitness) gibi bilgileri saklar. Bununla birlikte kromozomun uygunluk değerini hesaplayan (fitnessfunction), kromozom üzerinde mutasyon (mutate), 2-opt (optimize) ve 3-opt (threeoptimize) işlemlerini gerçekleştiren metotları içerir. Kullanıcı tarafından dinamik olarak eklenen şehirlerin kromozomlara eklenmesi (addcity) ve dinamik olarak silinen şehirlerin kromozomlardan silinmesi işlemleri de bu sınıfın sorumluluğundadır. TSPMain sınıfı tüm şehirler (cities) ve kromozomlarla (chromosomes) birlikte eniyileme algoritmasına ilişkin topluluk büyüklüğü (populationsize), mutasyon oranı (mutationpercent), çaprazlama oranı (crossoverpercent), maksimum nesil (maximumgeneration), hedeflenen uzaklık (fit), 2-opt oranı (opt2rate), 3-opt oranı (opt3rate) ve seçilim yöntemi (selectionmethod) gibi bilgileri saklar. Bunların yanında eniyileme algoritmasının sonuçlanmasının ardından bulunan sonuç değeri (result) ve bu sonuç değerine ait turu içeren kromozom (resultchromosome) da bu sınıfta saklanır. Eniyileme algoritması ile ilgili işlemlerin birçoğu bu sınıfın sorumluluğundadır. Şehir yapısına (cities) yeni şehir ekleme (addcity), tüm şehirlerin silinmesi (clearcities), kromozom yapısına (chromosomes) yeni kromozom ekleme (addchromosome) ve ilgili nesildeki kromozomların uygunluk değerlerine göre sıralanması (sort) bu işlemlerden bazılarıdır. Bunlara ek olarak başlangıç topluluğunun oluşturulması (generatepopulation), eniyileme algoritmasının bir nesil geçişi boyunca yapması gereken işlemlerin gerçekleştirilmesi (generate), çözüme ulaşılıp ulaşılmadığının kontrolü (issolved), çaprazlama işleminin gerçekleştirilmesi (crossover), dinamik şehir ekleme

81 65 durumunda ilgili veri yapılarının güncellenmesi (addupdate) ve son olarak da dinamik şehir silme durumunda ilgili veri yapılarının güncellenmesi (deleteupdate) bu sınıfın sorumluluğundaki diğer işlemlerdir.

82 66 6. DENEYSEL SONUÇLAR Genetik algoritmalar ve yerel arama tabanlı eniyileme algoritmasının başarısını ölçmek için, TSPLIB kütüphanesinden alınan bir dizi standart veri üzerinde denemeler gerçekleştirilmiştir. TSPLIB kütüphanesinde bulunan dosyalar, gezgin satıcı problemi üzerinde çalışan araştırmacıların çalışmalarını karşılaştırabilmeleri için bir standart oluşturmak amacıyla ortaya konmuş hazır haritalardır. TSPLIB kütüphanesinde bulunan dosyaların isimlerinin sonundaki sayılar o dosyada kaç şehir bulunduğunu belirtir. Örneğin berlin52, 52 şehirden oluşan bir gezgin satıcı problemi örneğidir. Literatürde TSPLIB kütüphanesinden alınan örnek problemler için iki farklı türde optimum değerler bulunmaktadır. Bunlardan birincisi şehirler arası uzaklık değerlerinin tam sayılara yuvarlandığı tamsayı modu, ikincisi ise yuvarlama yapılmayan reel sayı modudur. Dinamik gezgin satıcı problemi kütüphanesi her iki modu da desteklediğinden bu iki mod için ayrı ayrı denemeler yapılmış ve bulunan sonuçlar optimum değerlerle karşılaştırılmıştır. Simetrik GSP örnek kümelerinden berlin52, eil51, eil76, kroa100, krob100, kroc100, krod100, kroe100, kroa150 ve kroa200 için tamsayı modunda elde edilen sonuçlar Tablo 6.1 de sunulmuştur. Denemeler 20 şer kez tekrarlanmış, denemelerde 3-opt kullanılmamış, denemelerde kullanılan topluluk büyüklükleri GSP örneklerinin şehir sayılarına uygun olarak belirlenmiş ve her deneme için 50 şer nesil üretilmiştir. Bu denemelerde bulunan en iyi sonuçlar ve tüm denemelerin ortalamaları kaydedilmiştir.

83 67 Tablo 6.1: TSPLIB örnekleri için tamsayı modunda bulunan sonuçlar GSP Örneği Bilinen En İyi Sonuç Bulunan En İyi Sonuç Ortalama Değerler Ortalama Hata Yüzdesi berlin % eil % eil % kroa % krob % kroc % krod % kroe % kroa % kroa % Simetrik GSP örnek kümelerinden berlin52, eil51, eil76, kroa100, krob100, kroc100, krod100, kroe100, kroa150 ve kroa200 için aynı koşullarda yapılan denemelerle, reel sayı modunda elde edilen sonuçlar ise Tablo 6.2 de sunulmuştur.

84 68 Tablo 6.2: TSPLIB örnekleri için reel sayı modunda bulunan sonuçlar GSP Örneği Bilinen En İyi Sonuç Bulunan En İyi Sonuç Ortalama Değerler Ortalama Hata Yüzdesi berlin % eil % eil % kroa % krob % kroc % krod % kroe % kroa % kroa % Tablo 6.1 ve Tablo 6.2 deki değerler incelendiğinde örnek GSP kümelerinin tamamı için hem tamsayı hem de reel sayı modunda bilinen en iyi sonuçlara ulaşıldığı ve ortalama değerler için hata oranlarının çok büyük bir çoğunluğunun 1/1000 den bile daha düşük olduğu görülmektedir. Bununla birlikte melez eniyileme yönteminin, çok fazla iterasyona ihtiyaç duymadan iyi sonuçlar ürettiği de görülmektedir. Tamsayı modunda ortalama değerler için, 10, 20, 30, 40 ve 50. nesillerde elde edilen sonuçların grafikleri Şekil 6.1 de görülmektedir.

85 Şekil 6.1: En iyi tur uzunluğunun nesiller boyunca gelişimi 69

86 70 Şekil 6.1 de yer alan grafikler incelendiğinde, sabit topluluk büyüklüğü için, maksimum nesil parametresi belirli bir değerin üstüne çıktıktan sonra, bu parametrenin öneminin azaldığı görülmektedir. Bu nedenle maksimum nesil parametresinin belli bir noktadan sonra arttırılmasına gerek kalmamaktadır. Ayrıca yerel arama tekniklerinin eniyileme üzerindeki etkisini ölçmek amacıyla berlin52, kroa100, kroa150 ve kroa200 için sabit topluluk büyüklüğünde (100) farklı 2-opt oranlarıyla ( ) denemeler yapılmıştır. Denemeler 20 şer kez tekrarlanmış ve her deneme için 50 şer nesil üretilmiştir. Denemelerde 3-opt işlemi uygulanmamıştır. 2-opt oranının denemeler sonucu bulunan ortalama değerler üzerindeki etkisi Şekil 6.2 deki grafiklerde görülmektedir.

87 Şekil 6.2: 2-opt oranının eniyileme üzerindeki etkisi 71

88 72 Şekil 6.2 deki grafikler incelendiğinde özellikle küçük ve orta ölçekli problemlerde düşük optimizasyon oranlarıyla da optimuma oldukça yakın sonuçların elde edildiği görülmektedir. Optimum sonuca odaklı bir çalışma yapılmıyorsa optimizasyon oranı düşük tutularak çok kısa sürede oldukça iyi sonuçlar elde edilebilir. Daha geniş ölçekli problemlerde ise optimuma çok yakın sonuçlar elde edebilmek için optimizasyon oranının belirli bir düzeyden düşük olmamasında yarar vardır. Dinamik gezgin satıcı problemi için önemli kriterlerden biri de uygulamanın harita üzerinde gerçekleşen değişikliklere hızlı bir biçimde cevap verebilmesidir. Dinamik GSP ile ilgili önceki yıllarda yapılmış az sayıda çalışmada eniyileme algoritması stabil hale geldikten sonraki (hedeflenen değere ulaşıldıktan sonraki) cevap verme süreleri ölçülmüş değerlendirmeler de buna göre yapılmıştır. Ancak bu tez çalışmasında dinamik ekleme, silme ve yer değiştirme işlemlerinin eniyileme algoritması stabil hale gelmeden önce de gerçekleştirilebilecekleri göz önünde bulundurulmuştur. Bu amaçla öncelikli olarak algoritma stabil halde değilken farklı büyüklükteki haritalar üzerinde iki farklı topluluk büyüklüğü (50 ve 100) kullanılarak rastgele dinamik ekleme ve silme işlemleri yapılmıştır. Her harita için 10 ekleme, 10 da silme olmak üzere 20 şer dinamik işlem yapılmış; en düşük ve ortalama tepki süreleri (response time) kaydedilmiştir. Denemelerde 2-opt oranı olarak 1 kullanılmıştır. Bu denemelerden 50 topluluk büyüklüğü için bulunan değerler Tablo 6.3 te, 100 topluluk büyüklüğü için bulunan değerler Tablo 6.4 te görülmektedir. Süre hesaplamalarına dayalı tüm denemeler P4 2.4 GHz

89 işlemci ve 256 gerçekleştirilmiştir. 73 MB RAM konfigürasyonuna sahip bir bilgisayarda Tablo 6.3: 50 topluluk büyüklüğü için algoritma stabil halde değilken bulunan ortalama tepki süreleri GSP Örneği En Düşük Süre Ortalama Süre berlin sn sn eil sn sn kroa sn sn kroa sn sn kroa sn sn Tablo 6.4: 100 topluluk büyüklüğü için algoritma stabil halde değilken bulunan ortalama tepki süreleri GSP Örneği En Düşük Süre Ortalama Süre berlin sn sn eil sn sn kroa sn sn kroa sn sn kroa sn sn Bunun yanında 50 topluluk büyüklüğü için yapılan denemeler farklı 2-opt oranlarıyla ( ) da tekrarlanarak yerel arama tekniklerinin dinamik işlemlerdeki tepki süresi üzerindeki etkisi incelenmeye çalışılmıştır. Yapılan denemelere ilişkin grafikler Şekil 6.3 te görülmektedir.

90 74 Şekil 6.3: 2-opt oranının tepki süresi üzerindeki etkisi

91 75 Şekil 6.3 teki grafikler incelendiğinde şehir sayısı arttıkça 2-opt oranının dinamik işlemlerdeki ortalama tepki süresi üzerindeki etkisinin doğrusala yakın bir hal aldığı görülmektedir. Buradan çıkarılacak sonuç dinamik değişikliklere çok hızlı cevap vermenin öncelikli hedef olduğu durumlarda optimizasyon oranının düşük tutulması gerektiğidir. Kaliteli sonuçlara en hızlı biçimde ulaşmanın öncelikli hedef olduğu durumlarda ise optimizasyon oranının yükseltilmesi gerekmektedir. Eniyileme algoritması stabil haldeyken ise dinamik değişikliklere cevap verme süreleri çok daha düşük olmaktadır. Bu süreleri ölçmek amacıyla algoritma stabil haldeyken farklı şehir sayılarından oluşan haritalar üzerinde sabit topluluk büyüklüğü (100) kullanılarak rastgele dinamik ekleme ve silme işlemleri yapılmıştır. Her harita için 10 ekleme, 10 da silme işlemi yapılmış ve bu işlemler için ayrı ayrı ortalama cevap verme süreleri (response time) kaydedilmiştir. Denemelerde 2-opt oranı olarak 1 kullanılmıştır. Bu denemeler sonucunda dinamik ekleme işlemleri için bulunan ortalama değerler Tablo 6.5 te, dinamik silme işlemleri için bulunan ortalama değerler ise Tablo 6.6 da görülmektedir.

92 76 Tablo 6.5: Dinamik ekleme işlemi için algoritma stabil haldeyken bulunan ortalama tepki süreleri Şehir Sayısı Ortalama Süre sn sn sn sn sn sn sn Tablo 6.6: Dinamik silme işlemi için algoritma stabil haldeyken bulunan ortalama tepki süreleri Şehir Sayısı Ortalama Süre sn sn sn sn sn sn sn

93 77 7. GÖRSEL YAZILIM GELİŞTİRME ORTAMI 7.1 Kullanılan Yöntem ve Metodolojiler Tez projesi kapsamında oluşturulan dinamik gezgin satıcı problemi kütüphanesinin yanı sıra bu kütüphaneyi kullanan web tabanlı bir araç da geliştirilmiştir. Bu web tabanlı araç kullanıcılara ağ üzerinden kendi GSP ve DGSP tabanlı problemlerini çözme ve bu problemlere çözüm üretecek kodu üretme olanaklarını sunmaktadır. Özellikle kullanıcının bir uygulama geliştirici olduğu ve problemin çözümünü uygulamasının başka bir bölümünde farklı bir amaç için kullanacağı durumlarda kod üretme seçeneği oldukça önemli ve gereklidir. Kullanıcı bir satır bile kod yazmadan, sadece web tabanlı aracın görsel arayüzünü kullanarak ürettiği bu kodu kendi uygulamasının ilgili bölümüne yerleştirebilir. Web tabanlı araç kullanıcılara kendi nokta kümelerini ya da bir başka deyişle haritalarını oluşturma, düzenleme ve kaydetme olanaklarını sunmaktadır. Ayrıca kullanıcılar oluşturdukları bu harita için çözüm üretecek eniyileme algoritmasına ilişkin ayrıntıları ve parametreleri de görsel arayüzü kullanarak belirleyebilirler. Dinamik gezgin satıcı problemi kütüphanesini kullanan web tabanlı görsel yazılım geliştirme ortamı Java platformunda applet olarak geliştirilmiştir. Uygulama geliştirilirken Java ortamının tercih edilmesinin nedeni, Java nın nesneye dayalı programlamayı desteklemesi ve platform bağımsızlığı sunarak, aracın çok sayıda insana ulaşmasını sağlamasıdır. Uygulama WWW (World Wide Web) üzerinden yayımlanabilmesi için applet olarak geliştirilmiştir. Applet, Java

94 78 programlama dilinde yazılmış bir programdır ve bir HTML (Hyper Text Markup Language) sayfası içeriğine, tıpkı bir resim gibi eklenebilir. Applet içeren bir sayfayı görüntülemek için Java teknolojisini destekleyen bir tarayıcı kullanıldığında, Applet in kaynak kodu kullanıcının sistemine aktarılır ve tarayıcının Java Sanal Makinesi (JVM - Java Virtual Machine) tarafından işletilir. Web tabanlı görsel yazılım geliştirme ortamı kullanıcı tarafından oluşturulan haritaların.tsp uzantılı olarak kaydedilmesi ya da TSPLIB kütüphanesinden.tsp uzantılı hazır dosyaların panele yüklenmesi gibi dosya işlemlerini içeren bir uygulamadır. Applet lerin dosya işlemleri gerçekleştirmesine izin verilmesi için applet e ilişkin jar dosyasının dijital olarak imzalanması gerekmektedir. Aksi halde kullanıcılar haritalarını kaydedemez ya da hazır haritalar yükleyemez. Bu nedenle web tabanlı görsel yazılım geliştirme ortamı dijital olarak imzalanmıştır. Bu konuyla ilgilenen kişiler Jar signing olarak adlandırılan ve bir jar dosyasının 6 ay gibi belirli bir süre için dijital olarak imzalanması anlamına gelen bu işlem hakkındaki ayrıntılı bilgiye adresinden ulaşabilirler. Web tabanlı görsel yazılım geliştirme ortamının kullanıcı arayüzünde dinamik gezgin satıcı problemine ilişkin şehir kümelerinin ve bu şehir kümeleri için bulunan çözümlerin görselleştirilebilmesi için Java 2D Uygulama Programlama Arayüzü (API - Application Programming Interface) kullanılmıştır. Java 2D, ileri seviye iki boyutlu grafikler ve resimleme için yazılmış bir sınıflar kümesidir. Doğru çizimi, metin ve resimleri ayrıntılı tek bir model ile çevrelemektedir. Resim birleştirme ve

95 79 alfa kanalı resimleri için kapsamlı destek, isabetli renk uzayı tanımı ve dönüşümü için sınıflar ve zengin bir görüntüye dayalı resimleme operatörü kümesi sağlamaktadır. 7.2 Tasarım ve Gerçekleştirim Web tabanlı görsel yazılım geliştirme ortamı da tıpkı dinamik gezgin satıcı problemi kütüphanesi gibi nesneye dayalı analiz, tasarım ve programla yaklaşımlarından yaralanılarak geliştirilmiştir. Alt yapısında, sınıf diyagramı Şekil 5.4 de görülen ve konuyla ilgili bölümde sınıf yapısına değinilmiş olan dinamik gezgin satıcı problemi kütüphanesini kullanan web tabanlı görsel yazılım geliştirme ortamı, dört sınıftan oluşmaktadır. Bu sınıflardan ikisi (TSPFileFilter ve CodeFileFilter) dosya işlemleri ile ilgili dosya türü ve dosya uzantısı gibi kontrolleri yaparlar. DrawPanel sınıfı kullanıcıların üzerinde haritalarını oluşturdukları panelle ilgili çizim işlemlerini gerçekleştiren sınıftır. UserInterface sınıfı ise kullanıcılar tarafından görsel arayüz kullanılarak tetiklenen olaylara (event) ilişkin işlemleri gerçekleştirmekle yükümlüdür. Web tabanlı görsel yazılım geliştirme ortamının sınıf diyagramı Şekil 7.1 de görülmektedir.

96 80 Şekil 7.1: Görsel yazılım geliştirme ortamının sınıf diyagramı. TSPFileFilter sınıfı Java da hazır olarak bulunan FileFilter sınıfını genişleten (extend eden) ve yapılacak işlemde kullanılacak dosya türünün yalnızca.tsp dosyası olması kısıtına olanak tanıyan bir sınıftır. Uygulama.tsp dosyalarının panele yüklenmesine ve oluşturulmuş haritaların.tsp dosyası olarak kaydedilmesine olanak tanıdığından bu kısıt gereklidir. CodeFileFilter sınıfı ise benzer kısıtı.java dosyaları için sağlar. Bu kısıt da web tabanlı görsel yazılım geliştirme ortamını

97 81 kullanarak hazır kod oluşturma aşamasında gereklidir. DrawPanel sınıfı panelde bulunan haritanın ölçeği (scaleratio) ve şehir bilgileri gösterme modunda bulunup, bulunulmadığı (shownumbers) gibi bilgileri saklar. Bununla birlikte panel üzerinde gerçekleştirilecek çizim ve boyama işlemlerinden (paintcomponent) de sorumludur. UserInterface sınıfı hangi dil seçeneğinde bulunulduğu (language), o anda yüklü harita olup olmadığı (maploaded), eniyileme algoritmasının çalışır durumda olup olmadığı (generated), şehir konumu değiştirme moduna geçilip geçilmediği (modification) ve adım adım çalışma modunda bulunulup bulunulmadığı (stepmode) gibi bilgileri saklar. Nesil sayısı (generation), toplam şehir sayısı (citynumber), panelin doluluk durumunu gösteren harita (panelmap) gibi bilgilerle birlikte dinamik olarak eklenecek (citycontainer) ve silinecek (deletecontainer) şehirleri depolayan veri yapıları da bu sınıfta bulunur. Userınterface sınıfı bunlarla birlikte belirli sayıda şehrin rastgele olarak eklenmesi (randombuttonmouseclicked), bir şehrin koordinat değerleri girilerek eklenmesi (addcitybuttonmouseclicked), panelin temizlenmesi (clearbuttonmouseclicked), eniyileme algoritmasının adım adım işletilmesi (stepbuttonmouseclicked), eniyileme algoritmasının bütün olarak işletilmesi (generatebuttonmouseclicked), panele fare ile tıklayarak şehir eklenmesi ve silinmesi (jpanel1mousepressed), fare ile sürüklenerek bir şehrin konumunun değiştirilmesi (jpanel1mousedragged), fare ile sürüklenen şehrin yeni konumunda bırakılması (jpanel1mousereleased), hazır harita yüklenmesi (loadbuttonmouseclicked), mevcut haritanın kaydedilmesi (savetspmapbuttonmouseclicked), mevcut değerlerle hazır Java kodu

98 82 oluşturulması (savecodebuttonmouseclicked), Türkçe dil seçeneğine geçilmesi (turkishradioactionperformed) ve İngilizce dil seçeneğine geçilmesi (englishradioactionperformed) gibi işlemlerden de sorumludur. 7.3 Görsel Yazılım Geliştirme Ortamının Kullanımı Tez projesi kapsamında oluşturulan dinamik gezgin satıcı problemi kütüphanesini kullanan web tabanlı araç, esnekliğe ve kullanım kolaylığına önem verilerek geliştirilmiştir. Aracın ağ üzerinden hem yerli hem de yabancı kullanıcılara ulaşacağı göz önünde bulundurulmuş ve bu nedenle de kullanıcılara Türkçe ve İngilizce olmak üzere iki farklı dil seçeneği sunulmuştur. Kullanıcılar panel üzerinde istedikleri noktalara fare ile tıklayarak ya da noktanın koordinat değerlerini girip ŞEHİR EKLE düğmesine basarak haritaya şehir ekleyebilirler. Koordinat değerleri girilmeden ŞEHİR EKLE düğmesine basılması ya da girilen koordinat değerlerinin panelin sınırları (800 x 500) dışında olması durumunda uygulama ilgili durumu belirten bir hata mesajı verir. Herhangi bir yanlış ekleme durumunda ya da harita üzerinde dinamik olarak değişen bir durum olduğunda ise kullanıcı şehrin üzerine fare ile tıklayarak o şehri kolaylıkla haritadan silebilir. Kullanıcılar şehirlerin konumunu, silme ve ekleme işlemlerini arka arkaya uygulayarak değiştirebilecekleri gibi şehir konumu değiştirme moduna geçip, ilgili şehri panel üzerinde fare ile sürükleyerek de değiştirebilirler. Şehir konumu değiştirme moduna geçmek için ekranda bulunan Şehir Konumu Değiştir kutucuğunun

99 83 işaretlenmesi yeterlidir. Yeniden ekleme ve silme işlemlerini yapabilmek için aynı kutucuğun işareti kaldırılmalıdır. Böylece şehir konumu değiştirme modundan çıkılmış olur. Kullanıcılar benzer biçimde Şehir Bilgisi Göster kutucuğunu işaretleyerek harita üzerinde bulunan şehirlerin bilgilerinin (şehir numarası ya da varsa şehir adı) görünmesini sağlayabilirler. Bunun yanında kullanıcılar çeşitli denemeler yapmak için mevcut haritaya istedikleri sayıda şehri rastgele olarak ekleyebilirler. Bunun için ekleyecekleri şehir sayısını Şehir Sayısı metin kutusuna girerek RASTGELE EKLE düğmesine basmaları yeterli olacaktır. Bütün bunlara ek olarak kullanıcı Şekil 7.2 de görüldüğü gibi HARİTA YÜKLE düğmesine bastığında karşısına çıkan dosya seçme penceresinden bilgisayarında bulunan hazır bir TSPLIB dosyasını seçip, panele yükleyebilir. TSPLIB dosyaları gezgin satıcı problemi üzerinde çalışan araştırmacıların çalışmalarını karşılaştırabilmeleri için bir standart oluşturmak amacıyla ortaya konmuş.tsp uzantılı dosyalar, bir başka deyişle hazır haritalardır. Kullanıcılar bu dosyalara adresinden ulaşabilirler. TSPLIB dosyaları farklı büyüklüklerde olduğundan, araç yüklenen dosyayı otomatik olarak ölçeklendirir ve bu harita ölçeğini de ekrana yansıtır. Kullanıcılar hazır olarak yükledikleri bu haritalar üzerinde de yukarıda bahsedilen ekleme, rastgele ekleme, silme ve yer değiştirme işlemlerini gerçekleştirebilirler.

100 84 Şekil 7.2: Hazır harita yükleme HARİTA KAYDET düğmesine basıldığında ise kullanıcı Şekil 7.3 te görüldüğü gibi karşısına çıkan dosya seçme penceresinden kendi oluşturduğu ya da hazır olarak yükleyip üzerinde değişiklik yaptığı haritayı isimlendirip bilgisayarında istediği dizine kaydedebilir. Uygulama haritayı TSPLIB dosyalarının formatında ve.tsp uzantılı olarak kaydeder. Böylece kullanıcı kaydettiği haritayı daha sonra HARİTA YÜKLE düğmesine basarak tekrar açıp üzerinde çalışmaya devam edebilir.

101 85 Şekil 7.3: Oluşturulan haritayı kaydetme Kullanıcı tarafından oluşturulmuş 10 şehirlik bir haritanın TSPLIB dosyası olarak kaydedilmiş hali şu şekilde olacaktır. NAME: mymap TYPE: TSP COMMENT: 10-city problem DIMENSION: 10 EDGE_WEIGHT_TYPE : EUC_2D

102 86 NODE_COORD_SECTION EOF Web tabanlı araç, dinamik gezgin satıcı problemi kütüphanesi kullanılarak oluşturulduğundan yukarıda bahsettiğim harita oluşturma ve düzenlemeyle ilgili tüm bu işlemler eniyileme algoritmasının çalışması sırasında dinamik olarak da gerçekleştirilebilir. Harita üzerinde gerçekleştirilebilecek tüm bu işlemlerin yanında kullanıcılar haritalarına çözüm üretecek eniyileme algoritmasına ilişkin ayrıntıları ve parametreleri de belirleyebilirler. Kullanıcıların eniyileme algoritmasıyla ilgili belirleyebileceği parametre ve ayrıntılar seçilim yöntemi, optimizasyon yöntemi, topluluk büyüklüğü, çaprazlama oranı,

103 87 mutasyon oranı, 2-opt oranı, 3-opt oranı, maksimum nesil sayısı ve hedeflenen uzaklıktır. Topluluk büyüklüğü, başlangıç topluluğunda ve daha sonraki her yeni nesli oluşturacak olan topluluklarda bulunacak olan birey sayısıdır. Bu parametrenin varsayılan değeri 100 dür. Toplam şehir sayısı fazla olduğunda, çözüme erken nesillerde ulaşmak için topluluk büyüklüğünün yüksek tutulmasında yarar vardır. Kullanıcılar Topluluk Büyüklüğü metin kutusuna farklı değerler girip denemeler yaparak kendi problemleri için ideal topluluk büyüklüğü değerini bulabilirler. Seçilim yöntemi parametresi mevcut topluluktan çaprazlama ve mutasyon işlemlerine tabi tutulacak bireylerin hangi metot uygulanarak seçileceğini belirler. Kullanıcı burada Seçilim Yöntemi liste kutusundan Sıralı, Rulet Tekerleği ya da Turnuva seçilimi yöntemlerinden birini seçebilir. Varsayılan seçilim yöntemi Sıralı Seçilim dir. Kullanıcılar, Genetik Algoritma Süreci bölümünde işleyişlerine, avantajlarına ve dezavantajlarına değinilen bu seçilim yöntemlerinden problemlerine uygun olanı belirleyip seçebilirler. Çaprazlama oranı parametresi ise kromozom çiftlerinin çaprazlamaya girme olasılığını belirtir. Çaprazlama oranının varsayılan değeri 0.75 tir. Buna göre her kromozom çifti ¾ ihtimalle çaprazlamaya girer. Çaprazlama oranının aşırı yüksek tutulması çeşitliliği arttırmakla birlikte çözüme geç yakınsanmasına da neden olabilir. Düşük tutulması ise benzer çözümler etrafında dolaşılıp yerel minimumlara takılmaya neden olabilir. Kullanıcılar, bu kriterleri göz önünde bulundurarak ya da Çaprazlama Oranı metin kutusuna farklı değerler girip denemeler

104 88 yaparak kendi problemleri için ideal çaprazlama oranı değerini bulabilirler. Mutasyon oranı parametresi kromozomların mutasyona uğrama olasılığını belirtir. Bu oranın varsayılan değeri 0.5 tir. Buna göre her kromozom 1/2 ihtimalle mutasyona uğrar. Normal şartlarda mutasyon oranının yüksek tutulması çeşitliliği arttırmak isterken iyi çözümlerin kaybedilmesine neden olur. Gereğinden düşük tutulması ise benzer çözümler etrafında dolaşılıp yerel minimumlara takılmaya neden olabilir. Ancak uygulamada mutasyon sonrası optimizasyon mantığı kullanıldığından mutasyon oranının düşük tutulması zorunluluğu yoktur. Kullanıcılar, bu kriterleri göz önünde bulundurarak ya da Mutasyon Oranı metin kutusuna farklı değerler girip denemeler yaparak kendi problemleri için ideal mutasyon oranı değerini bulabilirler. Maksimum nesil sayısı parametresi, hedeflenen uzaklığa ulaşılmaması halinde genetik algoritmanın çalışmasının tamamlanacağı nesil numarasını belirtir. Bu parametrenin varsayılan değeri 50 dir. Bu, hedeflenen uzaklığa ulaşılmaması durumunda eniyileme algoritmasının 50. neslin sonunda tamamlanacağı anlamına gelmektedir. Problemdeki şehir sayısının çok fazla olması durumunda maksimum nesil sayısının arttırılması yarar sağlamakla birlikte sabit topluluk büyüklüğü için belirli bir değere ulaştıktan sonra maksimum nesil sayısını arttırmanın algoritmaya olumlu bir katkısı olmadığı gözlemlenmiştir. Kullanıcılar bu kriterleri göz önünde bulundurarak ya da Maksimum Nesil metin kutusuna farklı değerler girip denemeler yaparak kendi problemleri için ideal maksimum nesil değerini bulabilirler.

105 89 Hedeflenen uzaklık da maksimum nesil sayısı gibi bir sonlandırma parametresidir ve varsayılan değeri 0 dır. Bu parametre, belirlenen değere eşit ya da belirlenen değerden daha düşük bir sonuca ulaşılması durumunda algoritmanın maksimum nesil sayısına ulaşmadan otomatik olarak sonlandırılmasını sağlar. Böylece algoritmanın istenen sonuca ulaştıktan sonra da çalışmaya devam etmesinden ortaya çıkabilecek zaman kaybı önlenmiş olur. Kullanıcılar, belirledikleri bir hedeflenen uzaklık değeri varsa bu değeri Hedeflenen Uzaklık metin kutusuna girebilirler. Yukarıda bahsedilen genetik algoritma kriterleri ve parametrelerinin yanında yerel optimizasyonla ilgili kriter ve parametreler de belirlenebilir. Bunlardan biri olan optimizasyon yöntemi bireylere uygulanacak yerel optimizasyon tekniğini belirler. Sadece 2- opt ve 2-opt & 3-opt seçenekleri mevcuttur. Kullanıcılar Optimizasyon Yöntemi liste kutusundan bu iki yöntemden birini seçebilirler. Şehir sayısının az olduğu durumlarda yalnızca 2-opt un kullanılması yeterli olmakla birlikte çok geniş kapsamlı problemlerde 3- opt un da kullanılmasında yarar vardır. 2-opt un seçilmesi durumunda kullanıcı sadece 2-opt oranını, 2-opt & 3-opt seçeneğinin seçilmesi durumunda ise 2-opt ve 3-opt oranlarını belirlemelidir. 2-opt oranının varsayılan değeri 1 dir. 2-opt & 3-opt seçeneği seçildiği takdirde ise 3- opt oranının varsayılan değeri 0.05 tir. 2-opt ve 3-opt oranları bireylere bu optimizasyon işlemlerinin hangi sıklıkta uygulanacağını belirleyen parametrelerdir. Küçük ve orta büyüklükteki problemlerde bu oranlar çok yüksek tutulmamalı hatta 3-opt hiç kullanılmamalıdır. Geniş kapsamlı problemlerde ise bu oranlar arttırabilir. Bu oranlar arttırıldıkça

106 90 uygulamanın çözüm üretmedeki başarısının yanında çalışma zamanı da artmaktadır. Kullanıcılar bu kriterleri göz önünde bulundurarak ya da 2- opt Oranı ve 3-opt Oranı metin kutularına farklı değerler girip denemeler yaparak kendi problemleri için ideal 2-opt ve 3-opt oranı değerlerini bulabilirler. Bunların yanı sıra GSP ve dinamik GSP için tur uzunluğu hesaplamada uzaklık değerlerinin tam sayıya yuvarlandığı Tamsayı Modu ve yuvarlama yapılmayan Reel Sayı Modu alternatiflerinden biri seçilebilir. Varsayılan mod reel sayı modudur. Yukarıda değinilen tüm bu parametreler isteğe bağlıdır. Herhangi biri ya da birkaçı için kullanıcı tarafından bir değer girilmezse uygulama, ilgili parametrelerin varsayılan değerleriyle çalışacaktır. İstenilen parametreler girildikten sonra eniyileme algoritmasını çalıştırmak için BAŞLAT düğmesine basılmalıdır. Kullanıcılar algoritmanın çalışması sırasında da dinamik olarak harita üzerinde değişiklikler yapabilirler. Kullanıcıların algoritmanın nesiller boyunca gelişimini adım adım izlemek istemeleri durumunda ADIM düğmesine basarak algoritmayı nesil nesil çalıştırmaları yeterli olacaktır. ADIM düğmesine her basışta algoritma bir nesil ilerler. Tıpkı algoritmanın çalışması sırasında olduğu gibi adımlar arasında da harita üzerinde değişiklik yapmak mümkündür. Sonuçta Şekil 7.4 te görüldüğü gibi bulunan tur haritada çizdirilir, o turun toplam uzunluğu ve kaç nesil sonunda o tura ulaşıldığı ise Toplam Uzunluk metin kutusuna yazdırılır. Harita üzerinde yer alan tüm şehirlerin silinmesi istendiğinde ise kullanıcının TEMİZLE düğmesine basması yeterlidir.

107 91 Şekil 7.4: KroA150 için üretilen çözüm örneği Kullanıcılar, problemlerine ilişkin haritayı oluşturduktan sonra web tabanlı aracı kullanarak problemlerini çözmek yerine, problemlerini çözecek kodu üretmek isteyebilirler. Bu seçenek özellikle problemin sonucunun uygulamada farklı işlemler için kullanılacağı ya da çözümün gösteriminin farklı biçimlerde yapılacağı durumlar için gerekli ve yararlıdır. Bunun için kullanıcı Şekil 7.5 te görüldüğü gibi KOD OLUŞTUR düğmesine bastıktan sonra karşısına çıkan pencereden oluşturacağı Java dosyasına isim verip bilgisayarında dosyanın

108 92 bulunmasını istediği dizini belirler ve uygulama Java kodunu otomatik olarak oluşturur. Şekil 7.5: Mevcut harita ve parametreleri içeren Java kodu oluşturma Üretilen kod da dinamik gezgin satıcı problemi kütüphanesini kullandığından uygulama geliştiricinin projesine dtsplib.jar dosyasını da eklemesi gerekmektedir. Uygulama geliştirici bir Eclipse kullanıcısı ise bunun için öncelikle Project sekmesinden Properties alt sekmesini seçmeli, karşısına çıkan pencerenin solunda yer alan menüden ise Java Build Path seçeneğinin seçtikten sonra Add External Jars düğmesine

109 93 basmalıdır. Daha sonra da açılan dosya seçme penceresinde dtsplib.jar dosyasının bulunduğu dizine konumlanmalı ve bu dosyayı seçmelidir. Bu işlemin ardından uygulama geliştirici kütüphanenin gerçekleştirdiği tüm fonksiyonlara uygulaması içerisinden erişebilir. Böylece kullanıcı sadece görsel arayüzü kullanarak haritasını düzenlemiş, parametrelerini belirlemiş ve tek satır bile kod yazmadan problemine çözüm üreten kodu oluşturmuş olur. Kullanıcı, kodu uygulamasının içine yerleştirip sonucu farklı işlemler için kullanabilir ya da sonucun gösterimini farklı biçimlerde yapabilir. Uygulama tarafından otomatik olarak üretilen kod aşağıdaki gibi olacaktır. import GA_Optimization.*; public class example{ public static void main(string[] args) { TSPMain tsp = TSPMain.getInstance(); boolean generated = false; City c; Chromosome resultchro; double result; c = new City(1,495,314); tsp.addcity(c,generated); c = new City(2,7,318); tsp.addcity(c,generated); c = new City(3,362,61); tsp.addcity(c,generated); c = new City(4,48,80); tsp.addcity(c,generated);

110 94 c = new City(5,146,210); tsp.addcity(c,generated); c = new City(6,630,481); tsp.addcity(c,generated); c = new City(7,574,473); tsp.addcity(c,generated); c = new City(8,613,444); tsp.addcity(c,generated); c = new City(9,426,332); tsp.addcity(c,generated); c = new City(10,186,44); tsp.addcity(c,generated); // Topluluk büyüklüğünü belirler tsp.setpopulationsize(30); // Çaprazlama oranını belirler tsp.setcrossoverpercent(0.75); // Mutasyon oranını belirler tsp.setmutationpercent(1.0e-4); // 2-opt oranını belirler tsp.setopt2rate(0.3); // 3-opt oranını belirler tsp.setopt3rate(0); //Maksimum nesli belirler tsp.setmaximumgeneration(20); // Hedeflenen uzaklık değerini belirler tsp.setfit(0.0);

111 95 // Seçilim yöntemini belirler tsp.setselectionmethod("sıralı"); // Sayı modunu belirler tsp.setnumbermode(false); // Başlangıç topluluğunu oluştur tsp.generatepopulation(); generated = true; int generation=1; while(!tsp.issolved()&& generation!= tsp.getmaximumgeneration()) { // Hedeflenen değer elde edilmedikçe ve // maksimum nesil sayısına ulaşılmadıkça devam et tsp.generate(); // GA'yı bir nesil ilerletir generation++; // Nesil sayısını arttır // İstenilen nesil için burada dinamik ekleme // ve silme işlemleri yapılabilir } generated = false; // En iyi şehir sırasını içeren kromozomu döndürür

112 96 resultchro=(chromosome)tsp.getchromosomes().lastelement(); // En iyi kromozoma ait yol uzunluğunu döndürür result= resultchro.getfitness(); // En iyi yol uzunluğunu ekrana yazdırır System.out.println(result); } } Daha önce de belirtildiği gibi uygulama, kullanıcılara Türkçe nin yanı sıra İngilizce dil seçeneğini de sunmaktadır. Uygulamanın kullanıcı arayüzündeki düğmelerin İngilizce dil seçeneğindeki karşılıkları Tablo 7.1 de, diğer kullanıcı arayüzü bileşenlerinin İngilizce dil seçeneğindeki karşılıkları ise Tablo 7.2 de görülmektedir. Tablo 7.1: Düğmelerin İngilizce dil seçeneğindeki karşılıkları Türkçe Dil seçeneği ŞEHİR EKLE RASTGELE EKLE HARİTA YÜKLE HARİTA KAYDET TEMİZLE KOD OLUŞTUR BAŞLAT ADIM İngilizce Dil Seçeneği ADD CITY ADD RANDOMLY LOAD MAP SAVE MAP CLEAR GENERATE CODE START STEP

113 97 Tablo 7.2: Diğer bileşenlerin İngilizce dil seçeneğindeki karşılıkları Türkçe Dil seçeneği Topluluk Büyüklüğü Çaprazlama Oranı Mutasyon Oranı Maksimum Nesil Hedeflenen Uzaklık 2-opt Oranı 3-opt Oranı Seçilim Yöntemi Sıralı Rulet Tekerleği Turnuva Optimizasyon Yöntemi Reel Sayı Modu Tamsayı Modu Harita Ölçeği Şehir Bilgisi Göster Şehir Konumu Değiştir Toplam Uzunluk İngilizce Dil Seçeneği Population Size Crossover Rate Mutation Rate Maximum Generation Aimed Distance 2-opt Rate 3-opt Rate Selection Method Rank Roulette Wheel Tournament Optimization Method Real Number Mode Integer Mode Map Scale Show City Info Modify City Position Total Distance Web tabanlı görsel yazılım geliştirme ortamının İngilizce dil seçeneğine örnek olması amacıyla, Şekil 7.6 da kroa100 probleminin çözümüne ilişkin ekran görüntüsü sunulmuştur.

114 98 Şekil 7.6: İngilizce Dil Seçeneği - kroa100 için üretilen çözüm örneği 7.4 Görsel Yazılım Geliştirme Ortamının Yararları Tez projesi kapsamında geliştirilen dinamik gezgin satıcı problemi kütüphanesini kullanan web tabanlı görsel yazılım geliştirme ortamı birçok amaca hizmet eden bir uygulamadır. Değişik meslek gruplarından kişiler, uygulamayı kullanarak ellerindeki parça toplama, parça yerleştirme ve dolaşmaya dayalı birçok statik ya da dinamik probleme

Zeki Optimizasyon Teknikleri

Zeki Optimizasyon Teknikleri Zeki Optimizasyon Teknikleri Genetik Algoritma (Genetic Algorithm) Doç.Dr. M. Ali Akcayol Genetik Algoritma 1970 li yıllarda John Holland tarafından geliştirilmiştir. 1989 yılında David E. Goldberg Genetik

Detaylı

GENETİK ALGORİTMALAR. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

GENETİK ALGORİTMALAR. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ GENETİK ALGORİTMALAR Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ GENETİK ALGORİTMALAR Genetik algoritmalar, Darwin in doğal seçim ve evrim teorisi ilkelerine dayanan bir arama ve optimizasyon yöntemidir.

Detaylı

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım Mehmet Ali Aytekin Tahir Emre Kalaycı Gündem Gezgin Satıcı Problemi GSP'yi Çözen Algoritmalar Genetik Algoritmalar

Detaylı

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta: Genetik Algoritmalar Bölüm 1 Optimizasyon Yrd. Doç. Dr. Adem Tuncer E-posta: adem.tuncer@yalova.edu.tr Optimizasyon? Optimizasyon Nedir? Eldeki kısıtlı kaynakları en iyi biçimde kullanmak olarak tanımlanabilir.

Detaylı

Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri

Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri Onur KARASOY 1, Serkan BALLI 2 1 Muğla Sıtkı Koçman Üniversitesi Bilgi İşlem Dairesi Başkanlığı 2 Muğla Sıtkı Koçman Üniversitesi Bilişim Sistemleri

Detaylı

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Fonksiyon Optimizasyonunda Genetik Algoritmalar 01-12-06 Ümit Akıncı Fonksiyon Optimizasyonunda Genetik Algoritmalar 1 Fonksiyon Optimizasyonu Fonksiyon optimizasyonu fizikte karşımıza sık çıkan bir problemdir. Örneğin incelenen sistemin kararlı durumu

Detaylı

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar METASEZGİSEL YÖNTEMLER Genetik Algoritmalar 1970 li yıllarda John Holland tarafından geliştirilmiştir. 1989 yılında David E. Goldberg Genetik Genetik Algoritma Algoritma Uygulamaları üzerine klasik eser

Detaylı

Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla Eniyilemesi ve Karşılaştırılması

Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla Eniyilemesi ve Karşılaştırılması Süleyman Demirel Üniversitesi Fen Bilimleri Enstitüsü Dergisi Suleyman Demirel University Journal of Natural andappliedscience 18(1), 8-13, 2014 Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla

Detaylı

Gezgin Satıcı Probleminin Genetik Algoritmalarla Eniyilemesi ve Etkileşimli Olarak İnternet Üzerinde Görselleştirilmesi

Gezgin Satıcı Probleminin Genetik Algoritmalarla Eniyilemesi ve Etkileşimli Olarak İnternet Üzerinde Görselleştirilmesi Gezgin Satıcı Probleminin Genetik Algoritmalarla Eniyilemesi ve Etkileşimli Olarak İnternet Üzerinde Görselleştirilmesi Utku Cevre 1, Barış Özkan 1, Aybars Uğur 2 1 Ege Üniversitesi, Bilgisayar Mühendisliği

Detaylı

Serdar BİROĞUL YÜKSEK LİSANS TEZİ (ELEKTRİK EĞİTİMİ) GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ANKARA

Serdar BİROĞUL YÜKSEK LİSANS TEZİ (ELEKTRİK EĞİTİMİ) GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ANKARA i GENETİK ALGORİTMA YAKLAŞIMIYLA ATÖLYE ÇİZELGELEME Serdar BİROĞUL YÜKSEK LİSANS TEZİ (ELEKTRİK EĞİTİMİ) GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ OCAK 2005 ANKARA ii Serdar BİROĞUL tarafından hazırlanan

Detaylı

Melez Bir Eniyileme Yöntemi ile Rota Planlama

Melez Bir Eniyileme Yöntemi ile Rota Planlama Çanakkale Onsekiz Mart Üniversitesi, Çanakkale, 30 Ocak - 01 Şubat 2008 Melez Bir Eniyileme Yöntemi ile Rota Planlama Barış ÖZKAN, Utku CEVRE, Yrd. Doç. Dr. Aybars UĞUR Ege Üniversitesi, Bilgisayar Mühendisliği

Detaylı

Esnek Hesaplamaya Giriş

Esnek Hesaplamaya Giriş Esnek Hesaplamaya Giriş J E O L O J İ M Ü H E N D İ S L İ Ğ İ A. B. D. E S N E K H E S A P L A M A Y Ö N T E M L E R İ - I DOÇ. DR. ERSAN KABALCI Esnek Hesaplama Nedir? Esnek hesaplamanın temelinde yatan

Detaylı

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ)

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) ÖLÇEKLENEBİLİR H.264 VİDEO KODLAYICISI İÇİN SEVİYELENDİRİLEBİLİR GÜVENLİK SAĞLAYAN BİR VİDEO ŞİFRELEME ÇALIŞMASI Gül BOZTOK ALGIN Uluslararası

Detaylı

GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı

GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı Erol Şahin Bilgisayar Mühendisliği Bölümü, Orta Doğu Teknik Üniversitesi Ankara, Türkiye 2. ULUSAL GRİD ÇALIŞTAYI, 1-2 Mart 2007, TÜBİTAK,

Detaylı

GEZGİN SATICI PROBLEMİ İÇİN BİR MEMETİK ALGORİTMA ÖNERİSİ

GEZGİN SATICI PROBLEMİ İÇİN BİR MEMETİK ALGORİTMA ÖNERİSİ 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

Detaylı

Genetik Algoritmalar (GA) Genetik Algoritmalar Đçerik Nesin Matematik Köyü E rim Ç lı l ş ı ta t yı Nisan, 2012 Mustafa Suphi Erden

Genetik Algoritmalar (GA) Genetik Algoritmalar Đçerik Nesin Matematik Köyü E rim Ç lı l ş ı ta t yı Nisan, 2012 Mustafa Suphi Erden Genetik Algoritmalar Nesin Matematik Köyü Evrim Çalıştayı 20-23 Nisan, 202 Genetik Algoritmalar (GA Đçerik Biyolojiden esinlenme GA nın özellikleri GA nın unsurları uygulama Algoritma Şema teoremi Mustafa

Detaylı

İLERİ ALGORİTMA ANALİZİ GENETİK ALGORİTMA

İLERİ ALGORİTMA ANALİZİ GENETİK ALGORİTMA İLERİ ALGORİTMA ANALİZİ 1. Giriş GENETİK ALGORİTMA Geniş çözüm uzaylarının klasik yöntemlerle taranması hesaplama zamanını artırmaktadır. Genetik algoritma ile kabul edilebilir doğrulukta kısa sürede bir

Detaylı

BİRİNCİ BASIMA ÖN SÖZ

BİRİNCİ BASIMA ÖN SÖZ BİRİNCİ BASIMA ÖN SÖZ Varlıkların kendilerinde cereyan eden olayları ve varlıklar arasındaki ilişkileri inceleyerek anlamak ve bunları bilgi formuna dökmek kimya, biyoloji, fizik ve astronomi gibi temel

Detaylı

GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI

GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI ÖZEL EGE LĠSESĠ GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI HAZIRLAYAN ÖĞRENCĠLER: Berkin ĠNAN Doğa YÜKSEL DANIġMAN ÖĞRETMEN: Aslı ÇAKIR ĠZMĠR 2014 ĠÇĠNDEKĠLER 1. PROJENĠN AMACI. 3

Detaylı

KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI

KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI Hatice YANIKOĞLU a, Ezgi ÖZKARA a, Mehmet YÜCEER a* İnönü Üniversitesi Mühendislik Fakültesi Kimya Mühendisliği

Detaylı

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-5 Bilgili Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Arama Grafları Eğer arama uzayı ağaç yapısından değil de graf

Detaylı

KARINCA KOLONİ ALGORİTMASI BMÜ-579 Meta Sezgisel Yöntemler. Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü

KARINCA KOLONİ ALGORİTMASI BMÜ-579 Meta Sezgisel Yöntemler. Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü KARINCA KOLONİ ALGORİTMASI BMÜ-579 Meta Sezgisel Yöntemler Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü Karınca Koloni Algoritması Bilim adamları, böcek davranışlarını inceleyerek

Detaylı

Muhammet Fatih AKBAŞ, Enis KARAARSLAN, Cengiz GÜNGÖR

Muhammet Fatih AKBAŞ, Enis KARAARSLAN, Cengiz GÜNGÖR Yazılım Tanımlı Ağların Güvenliğinde Yapay Zeka Tabanlı Çözümler: Ön İnceleme Muhammet Fatih AKBAŞ, Enis KARAARSLAN, Cengiz GÜNGÖR İzmir Katip Çelebi Üniversitesi, Muğla Sıtkı Koçman Üniversitesi, Ege

Detaylı

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1 Algoritmalar Arama Problemi ve Analizi Bahar 2016 Doç. Dr. Suat Özdemir 1 Arama Problemi Sıralama algoritmaları gibi arama algoritmaları da gerçek hayat bilgisayar mühendisliği problemlerinin çözümünde

Detaylı

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi Graf Veri Modeli Graf, bir olay veya ifadenin düğüm ve çizgiler kullanılarak gösterilme şeklidir. Fizik, Kimya gibi temel bilimlerde ve mühendislik uygulamalarında ve tıp biliminde pek çok problemin çözümü

Detaylı

Zeki Optimizasyon Teknikleri

Zeki Optimizasyon Teknikleri Zeki Optimizasyon Teknikleri Ara sınav - 25% Ödev (Haftalık) - 10% Ödev Sunumu (Haftalık) - 5% Final (Proje Sunumu) - 60% - Dönem sonuna kadar bir optimizasyon tekniğiyle uygulama geliştirilecek (Örn:

Detaylı

YÖNEYLEM ARAŞTIRMASI - I

YÖNEYLEM ARAŞTIRMASI - I YÖNEYLEM ARAŞTIRMASI - I 1/19 İçerik Yöneylem Araştırmasının Dalları Kullanım Alanları Yöneylem Araştırmasında Bazı Yöntemler Doğrusal (Lineer) Programlama, Oyun Teorisi, Dinamik Programlama, Tam Sayılı

Detaylı

Kablosuz Sensör Ağlar ve Eniyileme. Tahir Emre KALAYCI. 21 Mart 2008

Kablosuz Sensör Ağlar ve Eniyileme. Tahir Emre KALAYCI. 21 Mart 2008 Kablosuz Sensör Ağlar ve Eniyileme Tahir Emre KALAYCI 21 Mart 2008 Gündem Genel Bilgi Alınan Dersler Üretilen Yayınlar Yapılması Planlanan Doktora Çalışması Kablosuz Sensör Ağlar Yapay Zeka Teknikleri

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

Doğal Hesaplama (COMPE 564) Ders Detayları

Doğal Hesaplama (COMPE 564) Ders Detayları Doğal Hesaplama (COMPE 564) Ders Detayları Ders Adı Doğal Hesaplama Ders Kodu COMPE 564 Dönemi Ders Uygulama Laboratuar Kredi AKTS Saati Saati Saati Güz 3 0 0 3 7.5 Ön Koşul Ders(ler)i Öğretim üyesinin

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-4 Bilgisiz Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Aşağıda verilen arama stratejilerini anlamak

Detaylı

Bilgisayar Mühendisliği

Bilgisayar Mühendisliği Bilgisayar Mühendisliği Bülent Ecevit Üniversitesi Bilgisayar Mühendisliği Bölümü http://bilgisayar.beun.edu.tr İçerik Zonguldak Tanıtımı Üniversite Tanıtımı Mühendis Kimdir? Mühendisin Sorusu Bilgisayar

Detaylı

YÖNEYLEM ARAŞTIRMASI - III

YÖNEYLEM ARAŞTIRMASI - III YÖNEYLEM ARAŞTIRMASI - III Prof. Dr. Cemalettin KUBAT Yrd. Doç. Dr. Özer UYGUN İçerik Altın Oran (Golden Section Search) Arama Metodu Tek değişkenli bir f(x) fonksiyonunu ele alalım. [Bazı x ler için f

Detaylı

GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ

GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ VI. Ulusal Temiz Enerji Sempozyumu UTES 2006 25 27 Mayıs 2006, Isparta Sf.756 764 GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ Nida Nurbay ve Ali Çınar Kocaeli Üniversitesi Tek. Eğt. Fak. Makine

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

Evrimsel Çok amaçlı eniyileme. Tahir Emre Kalaycı Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 25 Mart 2010

Evrimsel Çok amaçlı eniyileme. Tahir Emre Kalaycı Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 25 Mart 2010 Evrimsel Çok amaçlı eniyileme Tahir Emre Kalaycı Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 25 Mart 2010 Gündem Çok amaçlı eniyileme Giriş Evrimsel çok amaçlı eniyileme Sonuç Giriş Gerçek dünya problemleri

Detaylı

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-3 Durum Uzayında Arama Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Durum uzayı temsilini öğrenmek ve durum uzayında

Detaylı

ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX ŞEKİLLER DİZİNİ... XIV SÖZLÜK... XIX

ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX ŞEKİLLER DİZİNİ... XIV SÖZLÜK... XIX XI İÇİNDEKİLER ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX ŞEKİLLER DİZİNİ... XIV SÖZLÜK... XIX 1. GİRİŞ... 1 2. PLANLAMANIN TARİHÇESİ... 7 2.1 Literatürdeki Planlayıcılar ve Kullandıkları Problem... Gösterimi

Detaylı

Tedarik Zinciri Yönetiminde Yapay Zeka Teknikler

Tedarik Zinciri Yönetiminde Yapay Zeka Teknikler Tedarik Zinciri Yönetiminde Yapay Zeka Teknikler Doç.Dr.Mehmet Hakan Satman mhsatman@istanbul.edu.tr İstanbul Üniversitesi 2014.10.22 Doç.Dr.Mehmet Hakan Satmanmhsatman@istanbul.edu.tr Tedarik Zinciri

Detaylı

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak EM302 Yöneylem Araştırması 2 Dr. Özgür Kabak TP Çözümü TP problemlerinin çözümü için başlıca iki yaklaşım vardır kesme düzlemleri (cutting planes) dal sınır (branch and bound) tüm yaklaşımlar tekrarlı

Detaylı

Zeki Optimizasyon Teknikleri

Zeki Optimizasyon Teknikleri Zeki Optimizasyon Teknikleri Tabu Arama (Tabu Search) Doç.Dr. M. Ali Akcayol Tabu Arama 1986 yılında Glover tarafından geliştirilmiştir. Lokal minimum u elimine edebilir ve global minimum u bulur. Değerlendirme

Detaylı

YÖNEYLEM ARAŞTIRMASI - II

YÖNEYLEM ARAŞTIRMASI - II YÖNEYLEM ARAŞTIRMASI - II Araş. Gör. Murat SARI 1/35 I Giriş Biri diğerini izleyen ve karşılıklı etkileri olan bir dizi kararın bütünüyle ele alındığı problemler için geliştirilen karar modelleri ve bunların

Detaylı

Genetik Algoritmalar. Prof.Dr.Adem KALINLI

Genetik Algoritmalar. Prof.Dr.Adem KALINLI Genetik Algoritmalar Erciyes Üniversitesi Ekim 2012 Sunum İçeriği Giriş Evrimsel Hesaplama Genetik Algoritmalar Maliyet fonksiyonu Bilgi temsil mekanizması Başlangıç popülasyonu oluşturma Uygunluk veya

Detaylı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) KUANTUM BİLGİ-İŞLEM ALGORİTMALARI ÜZERİNE BİR İNCELEME.

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) KUANTUM BİLGİ-İŞLEM ALGORİTMALARI ÜZERİNE BİR İNCELEME. EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) KUANTUM BİLGİ-İŞLEM ALGORİTMALARI ÜZERİNE BİR İNCELEME Gürkan Aydın ŞEN Uluslararası Bilgisayar Anabilim Dalı Bilim Dalı Kodu : 619.03.03 Sunuş

Detaylı

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI Algoritma Nedir? Algoritma Bir problemin çözümü için geliştirilmiş özel metot Girdileri çıktılara dönüştüren sıralı hesaplama adımları Tanımlanmış

Detaylı

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr İçerik Kümeleme İşlemleri Kümeleme Tanımı Kümeleme Uygulamaları Kümeleme Yöntemleri Kümeleme (Clustering) Kümeleme birbirine

Detaylı

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ MOODLE UZAKTAN ÖĞRETİM SİSTEMİ ÖZET Genel Bilgiler Moodle nedir? Sistem Gereksinimleri Moodle Sisteminin Kurulumu Ders ve kategori eklenmesi Bir dersin sistem özellikleri İstatistikler Sonuç ve öneriler

Detaylı

Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Mühendisliği

Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Mühendisliği Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bilgisayar Mühendisliği Günümüzde, finans, tıp, sanat, güvenlik, enerji gibi bir çok sektör, bilgisayar mühendisliğindeki gelişimlerden

Detaylı

Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması

Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması E M R U L L A H S O N U Ç A K A D E M I K B I L I Ş I M Ş U B A T 2 0 1 5 E M R U L L A H S O N U Ç,

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME YZM 317 YAPAY ZEKA DERS#10: KÜMELEME Sınıflandırma (Classification) Eğiticili (supervised) sınıflandırma: Sınıflandırma: Sınıf sayısı ve bir grup örneğin hangi sınıfa ait olduğunu bilinir Eğiticisiz (unsupervised)

Detaylı

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Çizge Algoritmaları Bahar 201 Doç. Dr. Suat Özdemir 1 En Kısa Yol Problemi Çizgelerdeki bir diğer önemli problem de bir düğümden diğer bir düğüme olan en kısa yolun bulunmasıdır. Bu problem

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

YAPAY SİNİR AĞLARI. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

YAPAY SİNİR AĞLARI. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ YAPAY SİNİR AĞLARI Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ İÇERİK Sinir Hücreleri Yapay Sinir Ağları Yapısı Elemanları Çalışması Modelleri Yapılarına Göre Öğrenme Algoritmalarına Göre Avantaj ve

Detaylı

Hardy Weinberg Kanunu

Hardy Weinberg Kanunu Hardy Weinberg Kanunu Neden populasyonlarla çalışıyoruz? Popülasyonları analiz edebilmenin ilk yolu, genleri sayabilmekten geçer. Bu sayım, çok basit bir matematiksel işleme dayanır: genleri sayıp, tüm

Detaylı

Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi

Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi 07-04-006 Ümit Akıncı Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi İçindekiler Fonksiyon Minimizasyonu Metropolis Algoritması. Algoritma.......................................... Bir boyutlu

Detaylı

PARALEL MAKĠNALARIN GENETĠK ALGORĠTMA ĠLE ÇĠZELGELENMESĠNDE MUTASYON ORANININ ETKĠNLĠĞĠ

PARALEL MAKĠNALARIN GENETĠK ALGORĠTMA ĠLE ÇĠZELGELENMESĠNDE MUTASYON ORANININ ETKĠNLĠĞĠ Ege Akademik BakıĢ / Ege Academic Review 10 (1) 2010: 199-210 PARALEL MAKĠNALARIN GENETĠK ALGORĠTMA ĠLE ÇĠZELGELENMESĠNDE MUTASYON ORANININ ETKĠNLĠĞĠ EFFICIENCY OF MUTATION RATE FOR PARALLEL MACHINE SCHEDULING

Detaylı

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI NOT: Çalışma kâğıtları Algoritma Tasarımı ve Excel olmak üzere 2 kısımdan oluşmakta ve sınavda her ikisinin de çalışılması gerekmektedir. ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI Bu çalışma sayfalarında

Detaylı

THE EFFECT OF PRODUCT NUMBER ON SOLVING THE JOP-SHOP SCHEDULING PROBLEM BY USING GENETIC ALGORITHM

THE EFFECT OF PRODUCT NUMBER ON SOLVING THE JOP-SHOP SCHEDULING PROBLEM BY USING GENETIC ALGORITHM GENETİK ALGORİTMA İLE ÇÖZÜMÜ GERÇEKLEŞTİRİLEN ATÖLYE ÇİZELGELEME PROBLEMİNDE ÜRÜN SAYISININ ETKİSİ Serdar BİROĞUL*, Uğur GÜVENÇ* (*) Gazi Üniversitesi Teknik Eğitim Fakültesi Elektrik Eğitimi Bölümü, Beşevler

Detaylı

2011 Third International Conference on Intelligent Human-Machine Systems and Cybernetics

2011 Third International Conference on Intelligent Human-Machine Systems and Cybernetics 2011 Third International Conference on Intelligent Human-Machine Systems and Cybernetics Özet: Bulanık bir denetleyici tasarlanırken karşılaşılan en önemli sıkıntı, bulanık giriş çıkış üyelik fonksiyonlarının

Detaylı

DOĞRUSAL OLMAYAN REGRESYON ANALİZİNDE GERÇEK DEĞER KODLAMALI GENETİK ALGORİTMA

DOĞRUSAL OLMAYAN REGRESYON ANALİZİNDE GERÇEK DEĞER KODLAMALI GENETİK ALGORİTMA Istanbul Ticaret Üniversitesi Sosyal Bilimler Dergisi Yıl:8 Sayı:15 Bahar 2009 s.167-178 DOĞRUSAL OLMAYAN REGRESYON ANALİZİNDE GERÇEK DEĞER KODLAMALI GENETİK ALGORİTMA Timur KESKİNTÜRK * Serap ŞAHİN ÖZET

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK MAT223 AYRIK MATEMATİK Gezgin Satıcı Problemi 9. Bölüm Emrah Akyar Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü, ESKİŞEHİR 2014 2015 Öğretim Yılı Gezgin Satıcı Problemi Soru n tane şehri olan bir

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Genetik Algoritma ile Elde Edilen Uyumlu Renklerin Web Şablonları Üzerinde Gerçeklenmesi

Genetik Algoritma ile Elde Edilen Uyumlu Renklerin Web Şablonları Üzerinde Gerçeklenmesi Genetik Algoritma ile Elde Edilen Uyumlu Renklerin Web Şablonları Üzerinde Gerçeklenmesi Şerif Okumuş Melih Orhan Bilgisayar Mühendisliği Bölümü, Süleyman Demirel Üniversitesi, Isparta {serifokumus,melihorhan}@yahoo.com.tr

Detaylı

BAŞKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BENZER SÜREÇLERDE ÜRETİLEN ÜRÜNLER İÇİN YAPAY ZEKA İLE ZAMAN TAHMİNİ SONER ŞÜKRÜ ALTIN

BAŞKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BENZER SÜREÇLERDE ÜRETİLEN ÜRÜNLER İÇİN YAPAY ZEKA İLE ZAMAN TAHMİNİ SONER ŞÜKRÜ ALTIN BAŞKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BENZER SÜREÇLERDE ÜRETİLEN ÜRÜNLER İÇİN YAPAY ZEKA İLE ZAMAN TAHMİNİ SONER ŞÜKRÜ ALTIN YÜKSEK LİSANS TEZİ 2011 BENZER SÜREÇLERDE ÜRETİLEN ÜRÜNLER İÇİN YAPAY

Detaylı

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Giriş.

Okut. Yüksel YURTAY. İletişim :  (264) Sayısal Analiz. Giriş. Okut. Yüksel YURTAY İletişim : Sayısal Analiz yyurtay@sakarya.edu.tr www.cs.sakarya.edu.tr/yyurtay (264) 295 58 99 Giriş 1 Amaç : Mühendislik problemlerinin bilgisayar ortamında çözümünü mümkün kılacak

Detaylı

Üç Boyutlu Grafik Teknolojilerinin Mobil Öğrenme Alanı ile Bütünleştirilmesi

Üç Boyutlu Grafik Teknolojilerinin Mobil Öğrenme Alanı ile Bütünleştirilmesi Future Learning Future 2008 : e Learning Üç Boyutlu Grafik Teknolojilerinin Mobil Öğrenme Alanı ile Bütünleştirilmesi Eray HANGÜL eray.hangul@sandarta.com Tahir Emre KALAYCI tahir.kalayci@ege.edu.tr Aybars

Detaylı

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK MAT223 AYRIK MATEMATİK Gezgin Satıcı Problemi 9. Bölüm Emrah Akyar Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü, ESKİŞEHİR 2014 2015 Öğretim Yılı Gezgin Satıcı Problemi Soru n tane şehri olan bir

Detaylı

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım Mehmet Ali Aytekin 1, Tahir Emre Kalaycı

Detaylı

Hülya Özdağ (YTÜ Matematik Bölümü Ö.Ü.) Nilgün Aygör (YTÜ Matematik Bölümü Ö.Ü.) Aykut Parlak (YTÜ Matematik Mühendisliği)

Hülya Özdağ (YTÜ Matematik Bölümü Ö.Ü.) Nilgün Aygör (YTÜ Matematik Bölümü Ö.Ü.) Aykut Parlak (YTÜ Matematik Mühendisliği) Karınca Kolonisi Algoritmasının Zaman Çizelgelemesi Üzerine: Bir Modellemesi ve Uygulaması Hülya Özdağ (YTÜ Matematik Bölümü Ö.Ü.) Nilgün Aygör (YTÜ Matematik Bölümü Ö.Ü.) Aykut Parlak (YTÜ Matematik Mühendisliği)

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

Daha komplike uygulamalar elektronik ticaret, elektronik kimlik belgeleme, güvenli e-posta,

Daha komplike uygulamalar elektronik ticaret, elektronik kimlik belgeleme, güvenli e-posta, Çift Anahtarlı (Asimetrik Şifreleme) Bilgi Güvenliği: Elektronik iletişim, günümüzde kağıt üzerinde yazı yazarak yapılan her türlü iletişimin yerine geçmeye adaydır. Çok uzak olmayan bir gelecekte kişi/kuruluş/toplumların,

Detaylı

Gevşek Hesaplama (COMPE 474) Ders Detayları

Gevşek Hesaplama (COMPE 474) Ders Detayları Gevşek Hesaplama (COMPE 474) Ders Detayları Ders Adı Gevşek Hesaplama Ders Kodu COMPE 474 Dönemi Ders Uygulama Laboratuar Kredi AKTS Saati Saati Saati Bahar 3 0 0 3 5 Ön Koşul Ders(ler)i Dersin Dili Dersin

Detaylı

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın

Detaylı

GÜNEŞ ENERJİSİ VE RÜZGÂR ENERJİSİ DÂHİL OLAN HİBRİT GÜÇ SİSTEMİNDE FARKLI ALGORİTMALAR İLE EKONOMİK YÜK DAĞITIMININ İNCELENMESİ

GÜNEŞ ENERJİSİ VE RÜZGÂR ENERJİSİ DÂHİL OLAN HİBRİT GÜÇ SİSTEMİNDE FARKLI ALGORİTMALAR İLE EKONOMİK YÜK DAĞITIMININ İNCELENMESİ 3. İzmir Rüzgâr Sempozyumu // 8-10 Ekim 2015 // İzmir 29 GÜNEŞ ENERJİSİ VE RÜZGÂR ENERJİSİ DÂHİL OLAN HİBRİT GÜÇ SİSTEMİNDE FARKLI ALGORİTMALAR İLE EKONOMİK YÜK DAĞITIMININ İNCELENMESİ Gül Kurt 1, Deniz

Detaylı

MONTE CARLO BENZETİMİ

MONTE CARLO BENZETİMİ MONTE CARLO BENZETİMİ U(0,1) rassal değişkenler kullanılarak (zamanın önemli bir rolü olmadığı) stokastik ya da deterministik problemlerin çözümünde kullanılan bir tekniktir. Monte Carlo simülasyonu, genellikle

Detaylı

Algoritmanın Hazırlanması

Algoritmanın Hazırlanması Algoritmanın Hazırlanması Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. ALGORİTMA ANALİZİ VE TASARIMI Ders Saati (T+U+L) Kredi AKTS BG-315 3/1 3+0+0 3+0 5 Dersin Dili : TÜRKÇE Dersin

Detaylı

DİZGE TABANLI BİLEŞEN DENEMELERİNİN TASARIMINDA BEKLENEN DİZGE YAŞAM SÜRESİNİN MODELLENMESİ 1

DİZGE TABANLI BİLEŞEN DENEMELERİNİN TASARIMINDA BEKLENEN DİZGE YAŞAM SÜRESİNİN MODELLENMESİ 1 DİZGE TABANLI BİLEŞEN DENEMELERİNİN TASARIMINDA BEKLENEN DİZGE YAŞAM SÜRESİNİN MODELLENMESİ 1 Emre YAMANGİL Orhan FEYZİOĞLU Süleyman ÖZEKİCİ Galatasaray Üniversitesi Galatasaray Üniversitesi Koç Üniversitesi

Detaylı

Yazılım Mühendisliği Bölüm - 3 Planlama

Yazılım Mühendisliği Bölüm - 3 Planlama 1 Yazılım Mühendisliği Bölüm - 3 Planlama 2 3 4 Planlama 5 Yazılım geliştirme sürecinin ilk aşaması Başarılı bir proje geliştirebilmek için projenin tüm resminin çıkarılması işlemi Proje planlama aşamasında

Detaylı

Adana Toplu Taşıma Eğilimleri

Adana Toplu Taşıma Eğilimleri Adana Toplu Taşıma Eğilimleri Doç. Dr. Mustafa Gök Elektrik Elektronik Mühendisliği Bilgisayar Bilimleri Ana Bilim Dalı Başkanı 13.06.2014 Doç. Dr. Mustafa Gök (Ç. Ü.) Adana Toplu Taşıma Eğilimleri 13.06.2014

Detaylı

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular Önsöz Giriş İçindekiler V VII IX 1.1. Algoritma 1.1.1. Algoritma Nasıl Hazırlanır? 1.1.2. Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular 2.1. Programın Akış Yönü 19 2.2. Başlama

Detaylı

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr.

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr. DGridSim Gerçek Zamanlı Veri Grid Simülatörü Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan 1. Sistem Mimarisi DGridSim katmanlı bir yapı göz önünde bulundurularak

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

AKARSULARDA KİRLENME KONTROLÜ İÇİN BİR DİNAMİK BENZETİM YAZILIMI

AKARSULARDA KİRLENME KONTROLÜ İÇİN BİR DİNAMİK BENZETİM YAZILIMI AKARSULARDA KİRLENME KONTROLÜ İÇİN BİR DİNAMİK BENZETİM YAZILIMI *Mehmet YÜCEER, **Erdal KARADURMUŞ, *Rıdvan BERBER *Ankara Üniversitesi Mühendislik Fakültesi Kimya Mühendisliği Bölümü Tandoğan - 06100

Detaylı

ERCİYES ÜNİVERSİTESİ KİMYA ANABİLİM DALI

ERCİYES ÜNİVERSİTESİ KİMYA ANABİLİM DALI İlaç Tasarımında Yeni Yazılımların Geliştirilmesi: Elektron Konformasyonel-Genetik Algoritma Metodu ile Triaminotriazin Bileşiklerinde Farmakofor Belirlenmesi ve Nicel Biyoaktivite Hesabı; ERCİYES ÜNİVERSİTESİ

Detaylı

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları Ders Adı Ders Dönemi Ders Uygulama Laboratuar Kredi AKTS Kodu Saati Saati Saati Mobil Uygulama Geliştirmeye Giriş ISE 407 Her İkisi 3 0 0 3 5

Detaylı

9.DERS Yazılım Geliştirme Modelleri

9.DERS Yazılım Geliştirme Modelleri 9.DERS Yazılım Geliştirme Modelleri 1 Yazılım Geliştirme Yaşam Döngüsü ve Modeller Herhangi bir yazılımın, üretim aşaması ve kullanım aşaması birlikte olmak üzere geçirdiği tüm aşamalar olarak tanımlanabilir.

Detaylı

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı 1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı Metodolojisi üzerinde durduğumuz çalışman Eğitim altyapısını gerçekleştirmek: Proje iki ana parçadan oluşacaktır. Merkezi Altyapı Kullanıcı Arabirimi

Detaylı

DENİZ HARP OKULU ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS YÖNEYLEM ARAŞTIRMA - EN-3 3/ 3+0 3 Dersin Dili : Türkçe Dersin Seviyesi

Detaylı

MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ

MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ İSTANBUL TEKNİK ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ K-MEANS KÜMELEME ALGORİTMASININ GENETİK ALGORİTMA KULLANILARAK GELİŞTİRİLMESİ BİTİRME ÖDEVİ Yunus YÜNEL Tez Danışmanı:

Detaylı

Deniz ERSOY Elektrik Yük. Müh.

Deniz ERSOY Elektrik Yük. Müh. Deniz ERSOY Elektrik Yük. Müh. AMACIMIZ Yenilenebilir enerji kaynaklarının tesis edilmesi ve enerji üretimi pek çok araştırmaya konu olmuştur. Fosil yakıtların giderek artan maliyeti ve giderek tükeniyor

Detaylı

TABAKALI RASTGELE ÖRNEKLEMEDE ÖRNEKLEM BÜYÜKLÜKLERİNİN GENETİK ALGORİTMA İLE BELİRLENMESİ

TABAKALI RASTGELE ÖRNEKLEMEDE ÖRNEKLEM BÜYÜKLÜKLERİNİN GENETİK ALGORİTMA İLE BELİRLENMESİ TABAKALI RASTGELE ÖRNEKLEMEDE ÖRNEKLEM BÜYÜKLÜKLERİNİN GENETİK ALGORİTMA İLE BELİRLENMESİ DETERMINATION OF SAMPLE SIZES IN STRATIFIED RANDOM SAMPLING WITH GENETIC ALGORITHM DERYA TURFAN DOÇ. DR. ÖZGÜR

Detaylı

Prof. Dr. Mahmut Koçak.

Prof. Dr. Mahmut Koçak. i Prof. Dr. Mahmut Koçak http://fef.ogu.edu.tr/mkocak/ ii Bu kitabın basım, yayım ve satış hakları Kitabın yazarına aittir. Bütün hakları saklıdır. Kitabın tümü ya da bölümü/bölümleri yazarın yazılı izni

Detaylı

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU Tek değişkenli bir f(x) fonksiyonunu ele alalım. [Bazı x ler için f (x) bulunamayabilir.] Aşağıdaki DOP modelini çözmek istediğimizi var sayalım. Max f(x)

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS YAPAY ZEKA BG-421 4/2 2+1+0 2+.5 4 Dersin Dili : TÜRKÇE Dersin Seviyesi : LİSANS

Detaylı