Zeki Optimizasyon Teknikleri. Karınca Algoritması (Ant Algorithm)

Benzer belgeler
Zeki Optimizasyon Teknikleri

Zeki Optimizasyon Teknikleri

Zeki Optimizasyon Teknikleri

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ü

İLERİ ALGORİTMA ANALİZİ TABU ARAMA ALGORİTMASI (TABU SEARCH)

Karınca Koloni Algoritması 2

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Zeki Optimizasyon Teknikleri

METASEZGİSEL YÖNTEMLER

Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi

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

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Gerçek-Zamanlı Veri Dağıtımı Dokümanı v

PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN

BÖLÜM 3: TEK-ÇÖZÜM TABANLI METASEZGİSELLER. Bölüm Hedefi

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

KOMBİNATORYAL OPTİMİZASYON

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

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

Karınca Koloni Algoritması 1

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

Tek Değişkenli Optimizasyon OPTİMİZASYON. Gradient Tabanlı Yöntemler. Bisection (İkiye Bölme) Yöntemi

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

Yerel Arama Teknikleri ve Optimizasyon (Local Search and Optimisation)

YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR

GENETİK ALGORİTMALAR BÜŞRA GÜRACAR

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

İLERİ ALGORİTMA ANALİZİ KARINCA KOLONİ ALGORİTMASI

Kısıtsız Optimizasyon OPTİMİZASYON Kısıtsız Optimizasyon

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

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

Montaj Hatti Tasarımı ve Analizi - 5

YÖNEYLEM ARAŞTIRMASI - III

Veri Yapıları ve Algoritmalar

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

Makine Öğrenmesi 2. hafta

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

Altın Oran Arama Metodu(Golden Search)

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar

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

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

MONTE CARLO BENZETİMİ

Self Organising Migrating Algorithm

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

OPTİMİZASYON TEKNİKLERİ-2. Hafta

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

SEZGİSEL ALGORİTMA KULLANILARAK RÜZGÂR ÇİFTLİKLERİNİN GÜÇ SİSTEMİNE ETKİSİNİN İNCELENMESİ. Öğr. Gör. Mehmet Fatih Tefek Doç. Dr.

Temel ve Uygulamalı Araştırmalar için Araştırma Süreci

SİMÜLASYON ÇEŞİTLERİ HAZIRLAYAN: ÖZLEM AYDIN

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

Kaotik Tabanlı Diferansiyel (Farksal) Gelişim Algoritması

Genel Graf Üzerinde Mutlak 1-merkez

GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA

BMÜ-421 Benzetim ve Modelleme Kesikli Olay Benzetimi. İlhan AYDIN

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA

Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4129 ÇİZELGELEME

EM302 Yöneylem Araştırması 2 Çok değişkenli DOP ların çözümü. Dr. Özgür Kabak

IE 303T Sistem Benzetimi DERS 4 : O L A S I L I K T E K R A R

x e göre türev y sabit kabul edilir. y ye göre türev x sabit kabul edilir.

RASSAL SAYI ÜRETİLMESİ

Web Madenciliği (Web Mining)

Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4129 ÇİZELGELEME

RD lerin Fonksiyonları

SÜREKLİ ŞANS DEĞİŞKENLERİ. Üstel Dağılım Normal Dağılım

VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem

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

EM302 Yöneylem Araştırması 2 Doğrusal Olmayan Programlamaya Giriş. Dr. Özgür Kabak

GENETİK ALGORİTMALARA GİRİŞ (V)

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ

doğrusal programlama DOĞRUSAL PROGRAMLAMA (GENEL)

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

SÜREKLİ OLASILIK DAĞILIŞLARI

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

KISITLI OPTİMİZASYON

Doğal Hesaplama (COMPE 564) Ders Detayları

Karınca Kolonisi Algoritmasının Zaman Çizelgelemesi Üzerine: Bir Modellemesi ve Uygulaması

EME 3117 SİSTEM SİMÜLASYONU. Rassal Sayı ve Rassal Değer. Üretimi. Rassal Sayı Üretimi

EMM4131 Popülasyon Temelli Algoritmalar (Population-based Algorithms)

KARINCA OPTİMİZASYONU. Harun Kayıkçı

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

Görüntü Segmentasyonu (Bölütleme)

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

GENETİK ALGORİTMALARA GİRİŞ

İSTATİSTİKSEL TAHMİNLEME. Örneklem istatistiklerinden hareketle ana kütle parametreleri hakkında genelleme yapmaya istatistiksel tahminleme denir.

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Kavramsal Tasarım - I

DOĞRUSAL PROGRAMLAMADA DUALİTE (DUALITY)

Başlangıç Temel Programının Bilinmemesi Durumu

CBS ve Coğrafi Hesaplama

RASTGELE SAYI ÜRETİMİ VE UYGULANAN TESTLER HAZIRLAYAN: ÖZLEM AYDIN

BİL-142 Bilgisayar Programlama II

Doğrusal Programlama. Prof. Dr. Ferit Kemal Sönmez

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

ANADOLU ÜNİVERSİTESİ. ENM 317 Prof. Dr. Nihal ERGİNEL

FABRİKA ORGANİZASYONU Üretim Planlama ve Yönetimi 2. Uygulama: Sipariş ve Parti Büyüklüğü Hesaplama

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

Transkript:

Zeki Optimizasyon Teknikleri Karınca Algoritması (Ant Algorithm)

Karınca Algoritması 1996 yılında Marco Dorigo tarafından ortaya atılmıştır. Temel olarak karıncaların yiyecek madde ile yuvaları arasındaki en kısa yolu bulmalarından esinlenilmiştir. Karınca algoritması genetik algoritma gibi popülasyon tabanlı yaklaşıma sahiptir. Karınca popülasyonu içindeki herbir karınca bir çözüm oluşturur ve daha sonra diğer karıncaların hareketini etkiler.

Karınca Algoritması B B Engel A A

Karınca Algoritması d=1 D d=1 F d=1 E B d=1 A d=0.5 C d=0.5

Karınca Algoritması Algoritmanın çalışmasında kesikli (discrete) zaman (t) kullanılır. Her zaman aralığında her bir karınca bir birim yer değiştirir. Her yer değiştirmede 1 birim feromen maddesi bırakır. Başlangıçta (t=0) hiçbir yolda (kenarda) feromen maddesi yoktur.

Karınca Algoritması D 1 1 F E B A 1 1 0.5 C 0.5 t=1 iken 16 karınca B noktasında ve 16 karınca E noktasındadır. t=2 iken 8 karınca E noktasında 8 karınca B noktasındadır. D noktasında 16 karınca vardır. Kenarlardan geçen karınca yoğunlukları ise FE=16, AB=16, BC=16, CE=16, BD=8, ED=8 olur. 16 karınca A-F arasında 16 karınca F-A arasında hareket ediyor.

Karınca Algoritması Karınca algoritmaları sadece yol problemi çözümünde değil başka problemlerin çözümünde de kullanılır. Sadece feromen maddesi çokluğuna göre algoritma çalışırsa alt-optimal çözüme düşülür (lokal minimum). Global minimumu bulmak için yol seçiminde bazı olasılık seçimleri yapılır. Feromen birikmesi sınırsız ve sürekli değildir. Zamana bağlı olarak buharlaşma (yok olma) söz konusudur ve her t zamanında belirli bir oranda azalır.

Karınca Algoritması (Yol problemi) Şehirler arasındaki en kısa yolu bulmak için her şehre bir karınca yerleştirilir. Başlangıç (t=0) için feromen miktarı tüm yollar için 0 olarak alınır. Her t+1 zamanında her karınca yeni bir şehre hareket eder. Yeni şehrin belirlenmesinde bulunulan noktaya uzaklığı ile yoldaki feromen miktarına bağlı bir seçim kullanılır. Her zaman aralığında feromen miktarı için buharlaşma hesaplanır. Buharlaşma 0 ile 1 arasında bir değerdir. Bir karıncanın bir şehre iki sefer gitmesi tabu listesi ile engellenir. Her hareketten sonra her karıncanın gittiği şehirler güncellenir.

Karınca Algoritması (Yol problemi) - devam Her bir hareketten sonra feromen miktarı aşağıdaki formülle güncellenir. Fij(t+1) = b.fij(t) + ΔFij ΔFij = Q / Kn (Her turdan sonraki güncelleme içinde kullanılır) Burada Fij i. İle j. şehirler arasındaki yolda biriken feromen miktarı, b buharlaşma oranıdır. Q sabit katsayı ve Kn karıncanın kullandığı toplam yol uzunluğudur. Bir sonraki şehre geçiş oranı aşağıdaki formülle belirlenir. Pij = Fij(t) α. Nij β / Σ Fik(t) α. Nik β (k izin verilen yollar) Burada Nij i. ile j. şehirler arasındaki yol uzunluğu, α ve β kontrol parametreleridir.

Karınca Algoritması (Uygulamalar ve Araştırma) Gezgin satıcı problemi. Araç yol problemi. Daha kapsamlı araştırma için Marco Dorigo nun bu konuyla ilgili Web sayfası kullanılabilir. http://iridia.ulb.ac.be/~mdorigo/aco/aco.html Sitede şu ana kadar yapılmış olan çalışmalar ve yayınlarla ilgili bilgiler bulunmaktadır.

Zeki Optimizasyon Teknikleri Tavlama Benzetimi (Simulated Annealing)

Tavlama Benzetimi Optimizasyon problemleri için iyi çözümler veren olasıklı bir arama tekniğidir. Kirkpatrick ve arkadaşları tarafından 1983 yılında önerilmiştir. Katıların ısıtılması ve sonra kristalleşmeye kadar yavaş yavaş soğutulması esasına dayanır. Sıcaklık değeri elde edilen en iyi çözümden daha kötü bir çözümün kabul edilme olasılığını belirlemek için kullanılır.

Tavlama Benzetimi Tavlama benzetimi yüksek bir sıcaklık değeriyle başlar. Her bir hesaplama adımında mevcut çözümün komşuları arasından çok sayıda çözüm üretilir. Yeni çözümler belirlenen kriterlere göre kabul edilir veya reddedilir. Her bir hesaplama adımından sonra sıcaklık belirlenen bir fonksiyona göre azaltılır. Algoritma istenen iterasyona ulaşıldığında yada sıcaklık minimum değerine ulaştığında veya istenen çözüme ulaşıldığında sonlandırılır.

Tavlama Benzetimi (Akış şeması) Başlangıç çözümü Çözümü değerlendir Kabul et H E Çözümü güncelle Yeni çözüm oluştur H Isı değiş E Isı azalt H Aramayı bitir E Son çözüm

Tavlama Benzetimi (Algoritma) Begin Başlangıç çözümü seç Başlangıç sıcaklığı seç (t=100) Sıcaklık azaltım fonksiyonu belirle repeat repeat Yeni bir komşu çözüm üret if (yeni - eski) < 0 then yeni çözümü seç else begin [0,1] aralığında rassal sayı üret (r) if r < ( 1 / (exp(abs(yeni - eski)/t) ) then yeni çözümü seç end until iterasyon sayısına kadar t = f(t); until (t < 0) veya uygun çözüm bulununcaya kadar End e 1 r yeni eski t

Tavlama Benzetimi (Parametreler) Başlangıç sıcaklığı Her sıcaklıkta üretilecek çözüm sayısı fonksiyonu Sıcaklık azaltma fonksiyonu Algoritmayı durdurma şartı

Her sıcaklıkta üretilecek çözüm sayısı N k = C (Sabit) N k = N k-1 + C (Aritmetik) N k = N k-1 / a ( a<1 ) (Geometrik) N k = C / Log(T k ) (Logaritmik) N k = (N k-1 ) (1/a) ( a<1 ) (Üstel)

Sıcaklık azaltma fonksiyonu T k = T k-1 - C (Aritmetik) T k = T k-1 * a ( a<1 ve 1 yakın) (Geometrik) T k = C / (1+k) (Ters fonksiyon) T k = C / (Log(1+k)) (Logaritmik)

Algoritmanın durdurulması Belirlenen maksimum iterasyona ulaşılması Belirlenmiş minimum sıcaklığa ulaşılması İstenen kriterleri sağlayan çözüme ulaşılması

Tavlama Benzetimi (Uygulamalar ve Araştırma) Daha kapsamlı araştırma için bu konuyla ilgili Web sayfası kullanılabilir. http://www.cs.sandia.gov/opt/survey/sa.html Sitede şu ana kadar yapılmış olan çalışmalar ve yayınlarla ilgili bilgiler bulunmaktadır.

Zeki Optimizasyon Teknikleri Tabu Arama (Tabu Search)

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.

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. Algoritmayı durdurma şartları - Belirli bir iterasyona ulaşıldığında algoritma durdurulur. - Daha iyi çözüm bulunamadığında algoritma durdurulur.

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.

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: 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- 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)

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çilerek 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 olsa da alınır. Etkiye göre tabu kaldırma - Düşük etkili bir hareket, yüksek etkili bir harekete yol açacaksa tabu olsa da seçilir.

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.

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

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