• Sonuç bulunamadı

Yöneylem araştırması alanındaki problemler polinom ve üstel zamanda çözülebilen problemler olarak ikiye ayrılabilir. Polinom zamanda çözülebilen problemler için sorun yoktur ancak üstel zamanda çözülebilen problemlerde ilgilenilen parametre değeri büyüdükçe çözümün makul sürede bulunması zorlaşır ve hatta imkânsızlaşabilir. NP-zor olarak isimlendirilen bu problem grubunda büyük boyutlu durumlar için sezgisel algoritma kullanmak, günümüzde neredeyse bir zorunluluktur.

Gerçek hayat problemlerinde, hızlı bir şekilde çözüm üretebilmek çoğu zaman kritiktir. Örneğin imalat yapan bir işletmenin, işleri amaca yönelik olarak eniyi şekilde çizelgelemesi problemi için gereken bekleme süresinin saatler biriminde olması, işletmenin imalat yapmadan beklemesi anlamına gelmektedir. Bu durum da büyük maddi kayıplara sebep olur. Benzer şekilde çeşitli noktalara hammadde ya da ürün ulaştırmak amacıyla araç rotalama probleminin eniyi olarak çözülmesini bekleyen bir işletme için, ürünleri zamanında ulaştıramama olasılığı oluşmakta bu da tedarik zincirini olumsuz şekilde etkileyebilmektedir.

Bunun gibi sorunları aşabilmek için sezgisel algoritmalar önerilmiştir. Sezgisel algoritmalar bilgisayarlı problem çözümlerinde birkaç farklı yaklaşımı kullanan, zeki arama stratejileri tabanlı metotlardır (Pearl, 1984).

Sezgisel algoritmalar eniyi çözüm garantisi olmadan makul sürelerde iyi çözümler üretebilmek amacıyla kullanılmaktadırlar. Sezgisel yaklaşımlar genellikle probleme özel olarak türetilmişlerdir. Örneğin Kazanım Algoritması (Savings Algorithm) (Clarke and Wright, 1964) araç rotalama problemi için önerilmiştir.

Üzerinde çeşitli değişiklikler yapılarak benzer yapıdaki problemlere uyarlanabilmektedir.

Öte yandan, ileri sezgisel algoritmalar (meta-heuristic) olarak da adlandırılan ve yapay zekâ teknikleri arasında yer alan algoritmalar, sezgisel yaklaşımı bir adım ileriye taşıyıp, yaklaşımı probleme özgü olmaktan çıkarmaktadırlar. Bir ileri-sezgisel

algoritma, uygulamada çeşitli değişikliklerle çok farklı yapılardaki problemlere uyarlanabilmektedirler. Bu durum, bu yaklaşımların yaygın olarak kullanılma sebepleri arasında gösterilebilir.

İleri-sezgisel algoritmalar genel olarak tek noktalı ve sürü tabanlı olmak üzere iki ana başlık altında sınıflandırılabilirler. İzleyen bölümde tek noktalı ileri-sezgisellerden Yasaklı Arama Algoritması, sürü tabanlı ileri-sezgisel algoritmalardan ise Genetik Algoritma ve Parçacık Sürüsü Optimizasyonu Algoritmaları hakkında bilgi verilmiştir.

4.1. Yasaklı Arama Algoritması

Yasaklı Arama Algoritması (YAA) (Tabu Search), eniyileme problemlerinin çözümünde kullanılan ve yerel eniyilere takılmayı engelleyen yüksek dereceden bir sezgisel algoritmadır (Glover, 1989, 1990a, 1990b).

YAA araştırmalarda sıkça kullanılan tek noktalı ileri sezgisel algoritmalar arasında gösterilebilir ve çok sayıda kombinatoriyel probleme uygulanabildiği gibi, doğrusal olmayan sürekli problemlere de uyarlanabilmektedir.

Çalışmada uygulanan YAA’nın aktarılmasından önce, bu konuda kullanılan bazı terimler aşağıda verilmiştir.

Ardıştırma Sayısı (# of iterations): Algoritmanın toplam koşturma sayısı.

Başlangıç Çözüm (initial solution): Algoritmanın birinci ardıştırmasında kullanılan çözümdür. İzleyen diğer tüm çözümlere bu çözümdeki bilgilerin kullanımı ile ulaşılır.

Bu nedenle başlangıç çözüm kritiktir. Başlangıç çözüm tamamen rassal olarak oluşturulabileceği gibi, daha iyi bir noktadan başlamak amacıyla, farklı bir tekniğin çıktısı olan bir çözüm de başlangıç çözüm olarak kabul edilebilir.

Komşuluk sayısı (# of neighborhood): Çözüm uzayında, bulunulan mevcut noktanın komşuluğunda incelenecek aday çözüm (aday nokta) sayısı.

Aday Çözüm (candidate solution): Çözüm uzayında, bulunulan mevcut noktadan rassal bir hareketle elde edilmiş çözüm.

Hareket (move): Çözüm uzayında bir noktadan başka bir noktaya ulaşmak için kullanılan mekanizmadır. Başka bir ifadeyle başka bir çözüm elde etme tekniğidir.

Literatürde günümüze kadar uygulanmış pek çok hareket mevcuttur. Bunlardan sıklıkla kullanılanları aşağıda verilmiştir.

İkili Yer Değiştirme (Swap): Örnek olarak bir tur tarifleyen permütasyondaki iki farklı düğümün birbirleri ile yer değiştirmesidir. İkili yer değişikliği çeşitli tekniklerde tam sayımlamanın gerektirdiği kadar yapılıyor iken, literatürde genellikle yer değiştirecek düğümlerin rassal olarak seçilmesi benimsenmiştir. Şekil 4.1’de buna ilişkin bir şekil verilmiştir.

1 2 3 4 5 6

1 5 3 4 2 6

Şekil 4.1. İkili yer değiştirme.

Araya Sokma (Insertion): Bu teknikte rassal seçilen bir düğüm yine rassal seçilen bir aralığa yerleştirilir. Şekil 4.2’de buna ilişkin bir örnek verilmiştir.

1 2 3 4 5 6

1 3 4 2 5 6

Şekil 4.2. Araya sokma.

Tersine çevirme (Inversion): Bir turun tersine çevrilmesi işlemidir. Şekil 4.3’de buna ilişkin bir örnek verilmiştir.

1 2 3 4 5 6

6 5 4 3 2 1

Şekil 4.3. Tersine çevirme.

Yasak Statüsü (tabu status): Yapılacak hareketin yasaklı ya da yasaksız olduğu bilgisini barındıran değişken.

Yasak Süresi (tabu time): Yapılmış bir hareketin yasaklı statüsünde kalacağı zaman dilimi (ardıştırma sayısı).

Yasak Listesi (tabu list): Yapılan hareketlerin (yasak statüsü kazanmış hareketlerin) ardışık olarak hafızada tutulduğu liste.

Yasak Listesi Kapasitesi (tabu list capacity): Yasak listesine dâhil edilebilecek en fazla eleman sayısı.

Algoritma Eniyi (incumbent): Algoritmanın herhangi bir ardıştırmaya kadar bulabildiği eniyi çözümdür. Problemin eniyi çözümü olmak zorunda değildir. z* problemin eniyi çözümü iken, enbüyükleme problemi için , enküçükleme problemi için olur.

YAA’da genel olarak kısa dönemli (short-term) ve uzun dönemli (long-term) olmak üzere iki farklı hafıza yapısı vardır. Bazı kaynaklarda bu sınıflandırma arttırılabilmektedir. Şekil 4.4’de buna ilişkin bir gösterim verilmiştir. Kısa dönemli hafıza, çeşitli yasaklamalar ve kontrollere bağlı olarak bulunulan noktanın komşuluğu ile ilişkilendirilir. Yasak listesi kapasitesinin küçük, aday çözüm sayısının büyük

olması, algoritmanın toplam işlem süresinde kısa dönemli hafızadan kaynaklı işlem süresinin artmasına sebep olabilmektedir. Tersi durumda ise kısa dönemli hafıza kaynaklı gerekli işlem süresi azalma eğiliminde olmasına rağmen, bulunulan noktanın komşuluklarının yeterli hassasiyetle incelenememe ihtimali algoritmanın başarısını etkileyebilmektedir.

Şekil 4.4. Yasaklı Arama Algoritmasındaki hafıza tipleri (https://www-edc.eng.cam.ac.uk/projects/tabusearch/).

Öte yandan ardıştırma sayısı direkt olarak uzun dönemli hafıza ile ilişkilendirilmektedir. Uzun dönem hafıza ile algoritmanın, başlangıcından sonuna kadar elde edilen çözüm değerlerine işaret edilmektedir.

Bu iki farklı hafıza tipinin dengelenebilmesi ve algoritmanın makul çözüm sürelerinde iyi çözümler üretebilmesi, algoritmada kullanılan parametrelerin uygun değerlerinin belirlenebilmesi ile sıkı bir şekilde ilintilidir. Bu sebeple çeşitli sonuçlara ilişkin yorumlar ileri sürülmeden önce, genellikle algoritma için farklı parametreler altında denemeler yapılır (trial-run). Bu denemelerden elde edilen verilere göre çeşitli istatistiksel tekniklerin yardımıyla parametrelerin eniyi değerleri belirlenebilmektedir.

Ancak ileri-sezgisel algoritmaların rassallık özelliği nedeniyle aynı parametreler altında farklı sonuçlar elde edilmesi de olası bir durumdur.

Algoritmanın tüm adımları aşağıda ayrıntılı olarak verilmiştir.

Adım 1: Ardıştırma sayacını (k), tabu aşma kuralını, tabu listesi uzunluğunu, tabu

Benzer Belgeler