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 (Evaluation) fonksiyonu kullanarak her iterasyon için en iyi komşu çözümü bulur. Tabu listesi kullanılarak kabul edilebilir değişimler kısıtlanır. Böylece mevcut çözümden hangi komşu çözümlere geçiş yapılabileceği belirlenir. Tabu listesi kullanılarak daha önceki çözümlerin tekrar edilmesi (cycling problem) engellenir. Tabu listesi her iterasyonda güncellenir. 1
Parametreler Başlangıç çözümü - Rastsal seçilebilir veya bir algoritmayla seçilebilir. Yeni çözüm oluşturma fonksiyonu -Problem yapısına bağlıdır ve performansı doğrudan etkiler. -Bir değişkende değişiklik yapılarak yeni çözüm kümesi oluşturulur. Kısa dönem hafıza (Tabu Listesi) -Arama sırasında karşılaşılan durumları tutar ve tekrarını önler. - Belirli süre sonra tabu olan olaylar listeden çıkarılır. - Listeye ilk giren ilk çıkar stratejisi uygulanır. Parametreler (devam) Uzun dönem hafıza - Bulunan en iyi çözümü tutar. - Bulunmuş olan elit çözümleri tutar. Tabu yıkma kriterleri - Belirlenen kriterler sağlandığında bir komşu çözüm tabu listesinden çıkarılır ve yeni çözüm olarak alınır. - Mevcut çözümden daha iyi bir çözüm tabuda olsa alınır. Algoritmayı durdurma şartları - Belirli bir iterasyona ulaşıldığında algoritma durdurulur. - Daha iyi çözüm bulunamadığında algoritma durdurulur. 2
Yeni çözüm oluşturma Mevcut çözümden daha iyi bir çözüme geçiş yapılır Yeni çözümü oluşturan olası değişimler; d1- Seçilen bir x j değişkeninin ğ ş 0 değerinden ğ 1 değerine değişmesi d2- Seçilen bir x k değişkeninin 1 değerinden 0 değerine değişmesi d3- d1 ve d2 nin birlikte gerçekleşmesi d4- f(x) amaç değerinden f(x ) amaç değerine değişim d5- Tanımlanan bir g fonksiyonuna göre g(x) den g(x ) değerine değişim Kısa dönem hafıza Daha önce karşılaşılan bilgileri tutar. Önceki çözümlere dönüşü engeller. Her iterasyonda yenilenir. Kısa dönemli hafıza kaydı tutulur. Yeni yapılan çözüm geçişlerinin tersini tabu yapar. Her yeni tabu için tabu süresi (t) atanır ve i. iterasyonda verilen tabu durumu i+t süresi sonunda kaldırılır. 3
Uzun dönemli hafıza Aramayı iyileştirir ve aşağıdaki özelliklere sahiptir; Elit çözümlerin ve niteliklerin bir listesini tutar. İlerde bu elit çözümleri oluşturan ş niteliklere yeniden dönüş yaparak bu bölgelerin daha detaylı araştırılmasını sağlar. Tabu kısıtlamaları İstenmeyen çözüm değişimi ve yasakları uygulamak için kullanılır Herhangi bir iterasyonda, x k çözümünden x k+1 çözümüne geçildiğinde bu çözümün tersi tabu yapılır. Örnek kısıtlamalar: l k1- xj değişkeninin 1 değerinden 0 değerine değişmesi (daha önce 0 değerinden 1 değerine değişmişse) k2- xj değişkeninin 0 değerinden 1 değerine değişmesi (daha önce 1 değerinden 0 değerine değişmişse) k3- k1 ve k2 kısıtlarından en az birinin gerçekleşmesi k4- Tanımlanmış bir g(x) fonksiyonunun y k değerinden y n değerine değişmesi (daha önce y n değerinden y k değerine değişmişse) 4
Tabu süresi belirleme Tabu süresi çok kısaysa arama sürekli yerel optimumlarda gerçekleşir. Tabu süresi çok uzunsa hareketlerin çoğu tabu olduğundan bulunan çözümlerin kalitesi düşer. Statik : Sabit bir değer seçilir (t = 7 veya t = n gibi. n problem boyutunun bir ölçüsüdür). Basit dinamik : t-min ve t-max sınırları arasında sistematik veya rassal bir sayı seçilirek t değeri belirlenir. t-min ve t-max statik değer ataması ile seçilebilir. Niteliğe bağlı : t-min ve t-max niteliğin kalitesine bağlı olarak dinamik olarak belirlenir. t değeri ise basit dinamik kuraldaki gibi seçilebilir. Tabu yıkma kriterleri Tabu olan bir geçişin yapılması sağlanır. Yokluğa göre tabu kaldırma - Tüm mümkün hareketler tabu ise, tabu süresinin bitmesi en yakın olan alınır. Amaca göre tabu kaldırma - En iyi çözümden daha iyi çözüm veren hareket tabu olsada alınır. Etkiye göre tabu kaldırma -Düşük etkili bir hareket, yüksek etkili bir harekete yol açacaksa tabu olsada seçilir. 5
Tabu Arama Algoritmayı sonlandırma şartları; Optimum çözümü bilinen problemlerde optimum sonucun bulunması Belirlenmiş olan maksimum iterasyona ulaşılması Mevcut en iyi çözümde daha fazla iyileştirme yapılamaması Tabu Arama (Algoritma) Adım 1. Bir başlangıç çözümü seç, onu mevcut çözüm ve en iyi çözüm olarak kaydet. Adım 2. Mevcut çözümün komşularını bir komşuluk yapısıyla üret. Tabu olmayan veya tabu olsa bile tabu yıkma ölçütünü sağlayan bir komşu çözüm seç ve onu yeni çözüm olarak al. Mevcut çözümden yeni çözüme geçiş özelliğini tabu listesine ekleyerek listeyi güncelle. Eğer yeni çözüm o ana kadarki en iyi çözümden daha iyi ise onu yeni en iyi çözüm olarak kaydet. Adım3. Bir durdurma ölçütü sağlanıncaya kadar Adım 2`yi tekrarla. 6
Tabu Arama (Akış şeması) Başlangıç çözümü Çözüm aday listesi oluştur Çözümleri değerlendir En iyi kabul edilebilir çözümü seç Hafızayı güncelle H Aramayı bitir E Son çözüm Tabu Arama (Algoritma) Function Tabu_Search(Problem) returns a solution state Begin Şimdiki (Current), Sonraki (Next) ve En iyi (Best) değişkenlerini belirle Önceden geçilmiş çözümlerin listesini oluştur (H) Şimdiki durum değişkenine rastgele değer ata repeat Next = En yüksek değerli komşu çözüm if ((not move(h, Next)) or (Aspiration(Next)) then Current= Next Update Best H = Recency(H + Current) end until sonlandırma şartları oluşuncaya kadar return Best End 7
Tabu Arama (Araştırma) Kaynaklar: 1. Glover, F. 1989. Tabu Search Part I.. ORSA Journal on Computing, Vol. 1, No. 3, pp 190-206. 2. Glover, F. 1990. Tabu Search Part II.. ORSA Journal on Computing, Vol. 2, No. 1, pp 4-32. 3. Glover, F., Laguna, M. 1998. Tabu Search.. Kluwer Academic Publishers 4. Rayward-Smith, V.J., Osman, I.H., Reeves, C.R., Smith, G.D. 1996. Modern Heuristic Search Methods,, John Wiley & Sons. 5. Russell, S., Norvig, P. 1995. Artificial Intelligence A Modern Approach.. Prentice-Hall Makale taramak için: http://www.sciencedirect.com http://www.scirus.com http://www.ieeexplore.com http://www.google.com.tr http://www.engineering.usu.edu/ece/research/rtpc/projects/comb/ biblio.html Tabu Arama Haftalık Ödev: Tabu arama algoritması kullanılarak yapılmış bir makale bulup elde edilen sonuçları içeren bir rapor hazırlayınız. İncelenen makalede tabu arama algoritması kullanılmasının gerekçeleri, uygulamanın sonuçları değerlendirilecektir. - İncelenen makale son 5 yılda yayınlanmış olacaktır. - Makale Yurtdışında SCI te taranan bir dergide yayınlanmış olacaktır. - Hazırlanan rapora makalenin tam metnide eklenecektir. - Hazırlanan rapor ve makalenin tamamı diğer öğrencilerin hepsine e-postayla gönderilecektir. 8
Tabu Arama Gelecek Hafta Genetik Algoritma (Genetic Algorithm) 9