Yrd
. D
oç
. D
r. İ
bra
him
KÜ
ÇÜ
KK
OÇ
We
b:
htt
p:/
/ik
uc
uk
ko
c.b
au
n.e
du
.tr
6
Karınca
Koloni
Algoritması
1
Ders Planı (Vize Sonrası)
11. Hafta (H7312): Sürü Zekası, Doğada Karıncalar, ACO Giriş
12. Hafta (H7312): ACO Uygulama Adımları ve Manuel Örnek Çözümleri
13. Hafta (C106): Daha Önce Yazılmış Kodların ve Parametrelerin Algoritma Performansı Üzerine Etkisinin İncelenmesi
14. Hafta (C106): Laboratuvarda ACO Uygulaması & Rapor Teslimi
Laboratuvarda ACO Uygulaması (Finalde 20 Puan): Verilecek olan föy üzerinde belirtilen uygulamalar
bilgisayar başında daha önceden geliştirilmiş bir ACO algoritması arayüzünü kullanarak eş zamanlı
şekilde gerçekleştirilecektir. İstenilen soruların cevapları verilecek olan föy üzerine işlenecektir.
Rapor Teslimi (Finalde 20 Puan): Tercihen SCI’da taranan bir dergide yayımlanmış (olmazsa Ulakbim
veritabanı), tercihen bir Endüstri Müh./Yöneylem Araş. probleminin çözümüne yönelik geliştirilmiş olan
GA veya ACO algoritması içeren bir makale incelenip araştırılacak. Makale kapsamında çözülen
problemi ve çözüm yönteminin detaylarını anlatan 4 sayfalık Türkçe bir rapor hazırlanacak (1-2 sayfa
problem, 2-3 sayfa çözüm yöntemi). Maksimum üç kişilik grup oluşturulabilir. Final sınavından önce
(sınav günü de olabilir) rapor çıktı olarak teslim edilecek (cilt yapmaya gerek yok, poşet dosya yeterli)
ve [email protected] adresine Word formatında gönderilecek.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 2
Sürü Zekası (Swarm Intelligence)
Günümüzde biyolojik sistemlerden esinlenilerek ortaya çıkarılmış birçok yöntem hesaplama
problemlerinin çözümünde kullanılmaktadır.
Örneğin yapay sinir ağları insan beyninin basitleştirilmiş bir modelidir, genetik algoritma ise
doğada var olan "güçlü olanın hayatta kalması ve genetik özelliklerini sonraki nesillere
aktarması" prensibinden esinlenilerek ortaya çıkarılmıştır.
Biyolojik sistemlerin başka bir çeşidi olan sosyal sistemler, özellikle bireyin çevresiyle ve diğer
bireylerle olan etkileşimini ve kolektif (ortak) davranışlarını incelemektedir.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 3
Sürü Zekası (Swarm Intelligence)
Bazen tek başlarına hiçbir iş yapamayan varlıklar, toplu hareket ettiklerinde çok zekice
davranışlar sergileyebilmektedir. Bir topluluğa ait bireyler, en iyi bireyin davranışından ya da
diğer bireylerin davranışlarından ve kendi deneyimlerinden yararlanarak yorum yapmakta ve
bu bilgileri ileride karşılaşacakları problemlerin çözümleri için bir araç olarak kullanmaktadırlar.
Örneğin, bir canlı sürüsünü oluşturan bireylerden birisi bir tehlike sezdiğinde bu tehlikeye karşı
tepki verir ve bu tepki sürü içinde ilerleyip tüm bireylerin tehlikeye karşı ortak bir davranış
sergilemesini sağlar.
Canlıların sürüler halinde bir problemi kendi başlarına çözemeyip ortaklaşa ortaya koydukları
gayretle çözme yeteneği sürü zekası olarak adlandırılmaktadırlar.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 4
Sürü Zekası Optimizasyon Algoritmaları
Sürü, birbirleriyle etkilesen dağınık yapılı bireyler yığını
anlamında kullanılır. Bireyler insan veya karınca olarak
ifade edilebilir.
Sürülerde N adet temsilci bir amaca yönelik davranışı
gerçekleştirmek ve hedefe ulaşmak için birlikte
çalışmaktadır. Kolaylıkla gözlenebilen bu “kolektif zeka”
temsilciler arasında sık tekrarlanan davranışlardan
doğmaktadır.
Temsilciler faaliyetlerini idare etmek için basit bireysel
kurallar kullanmakta ve grubun kalan kısmıyla etkileşim
yolu ile sürü amaçlarına ulaşmaktadır.
Grup faaliyetlerinin toplamından bir çeşit kendini
örgütleme doğmaktadır.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 5
Sürü Zekası Optimizasyon Algoritmaları
Şimdiye kadar farklı araştırmacıların önerdiği sürü zekası optimizasyon algoritmaları aşağıda
başlıklar halinde verilmiştir:
Karınca Koloni Optimizasyonu
Parçacık Sürü Optimizasyonu
Yapay Balık Sürüsü Algoritması
Bakteriyel Besin Arama Optimizasyon Algoritması
Kurt Kolonisi Algoritması
Kedi Sürüsü Optimizasyonu
Yapay Arı Koloni Algoritması
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 6
Doğada Karıncalar
Gerçek karıncalar, yuvaları ile yiyecek kaynağı arasındaki
en kısa yolu bulma kabiliyetine sahiptirler ve ayrıca
çevredeki değişimlere de adapte olabilmektedirler.
Örneğin, yuva ile yiyecek arasındaki en kısa yol belirli bir
zamanda keşfedilir ve sonra çevre şartları nedeniyle bu en
kısa yol artık en kısa yol olmaktan çıkarsa, karıncalar yeni en
kısa yolu bulabilmektedirler.
Diğer bir ilginç nokta da, karıncaların çok iyi görme
kabiliyetlerinin olmamasıdır. Yani, en kısa yolu keşfetme
uğraşında yönleri seçmek için etrafı tam olarak göremezler.
Karıncalar üzerine yapılan çalışmalar, en kısa yolu bulma
kabiliyetlerinin birbirleri arasındaki kimyasal haberleşmenin
bir sonucu olduğunu göstermiştir. Karıncalar birbirleriyle
haberleşmede feromon olarak adlandırılan kimyasal bir madde kullanmaktadır.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 8
Doğada Karıncalar
Karıncalar yürürken yolları üzerine bir miktar feromon maddesi bırakır ve her bir karınca yuva
yada yiyecek bulmak için bir doğrultuyu seçer. Bir yönün seçilme ihtimali, bu yön üzerindeki
feromon maddesi miktarına bağlıdır.
Bütün yönlerin feromon miktarı birbirine eşit ise, o zaman bütün yönler karıncalar tarafından aynı
seçilme olasılığına sahiptir.
Tüm karıncaların hızlarının ve yollara bıraktıkları feromon miktarının aynı olduğu kabul
edildiğinde, daha kısa yollar üzerinde birim zamanda daha çok feromon maddesi birikecektir.
Dolayısıyla, karıncaların büyük çoğunluğu hızla en kısa yolları seçecektir.
Gerçek karınca kolonilerinin en kısa yolu bulmak için gösterdikleri davranış, doğal bir
optimizasyon işlemini tanımlar.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 9
Doğada Karıncalar
Deneubourg et al (1989) Çift Köprü Deneyi – I (Double Bridge Experiment – I)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 10
Yuva(Nest)
Yiyecek Kaynağı (Food Soure)15cm
Karıncalar bir süre gözlendiğinde;
- En başta rastsal olarak seçim yapılıyor ve her iki yol üzerinde de karıncalar gözleniyor.
- Fakat zamanla, neredeyse tüm karıncaların tek bir yol üzerinde yoğunlaştığı gözleniyor.
Doğada Karıncalar
Deneubourg et al (1989) Çift Köprü Deneyi – II (Double Bridge Experiment – II)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 11
Karıncalar bir süre gözlendiğinde;
- En başta rastsal olarak seçim yapılıyor ve her iki yol üzerinde de karıncalar gözleniyor.
- Fakat zamanla, neredeyse tüm karıncaların en kısa yol üzerinde yoğunlaştığı gözleniyor.
Yuva(Nest)
15cmYiyecek Kaynağı (Food Soure)
Video ACO1
https://www.youtube.com/watch?v=xpyKmjJuqhk
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 13
Doğada Karıncalar
Karıncaların aynı zamanda, çevredeki değişime adapte olma yetenekleri vardır. Dış etkenler sonucu takip ettikleri mevcut yol artık en kısa yol değilse, yeni en kısa yolu bulabilmektedirler.
Şekilde de görüldüğü gibi karıncalar başlangıçta düz bir hattı takip etmektedir.
Önlerine bir engel konulduğunda feromonları takip edemediklerinden, karıncalar gidebilecekleri iki yoldan birini öncelikle rastsal olarak seçmektedirler.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 14
Kısa olan yoldan birim zamandaki geçiş daha fazla olacağından bırakılan feromon miktarı da daha fazla olur.
Buna bağlı olarak, zaman içerisinde kısa olan yolu tercih eden karıncaların sayısında artış olur. Belli bir süre sonra neredeyse tüm karıncalar kısa yolu tercih ederler.
Başta rastsal hareket eden karıncaların, izleri kontrol ederek yüksek olasılıkla izlerin yoğun olduğu yönü takip etmesi otokatalitik bir davranış şeklidir ve karıncaların karşılıklı etkileşiminde sinerjik bir etki vardır.
Karınca Koloni Optimizasyon (Ant Colony Optimization-ACO) Algoritması
Karınca Koloni Optimizasyon (Ant Colony Optimization-ACO) Algoritmalarının temeli ilk olarak
Dorigo ve arkadaşları tarafından; gezgin satıcı problemi (GSP) ve kuadratik atama (QAP) gibi
zor optimizasyon problemlerinin çözümü için geliştirilmiştir.
En yeni sezgisel algoritmalardan biridir. Algoritma gerçek karınca kolonilerinin davranışları
üzerine dayalıdır.
Günümüze kadar ACO algoritmalarının yeni modelleri ortaya çıkmış ve bu modellerin özellikle
kesikli (discrete) optimizasyon problemlerinin çözümüne uygulanması konusunda çeşitli
çalışmalar yapılmıştır.
ACO algoritması, yukarıda tanımlanan gerçek karınca kolonilerinin yapmış olduğu doğal
optimizasyon işleminin yapay bir versiyonudur, genetik algoritma gibi popülasyon temelli bir
algoritmadır.
Yapay karıncalardan oluşan ACO Algoritması, yapay feromon izlerinin güncelleştirilmesiyle
tekrarlanan bir yapıya sahiptir.
Algoritmanın çalışma sürecinde, karıncalar tarafından güncellenen feromon izleriyle iyi bir
çözümün bulunması için bilgi oluşturulmakta ve her iterasyonda bu bilgiler güncellenmektedir.
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 16
Karınca Koloni Optimizasyon (Ant Colony Optimization-ACO) Algoritması
ACO algoritmasının çalışma prensibi yandaki şekilde verilmiştir. Kısaca;
Koloni büyüklüğü sayısınca karınca birer birer bırakıldıktan sonra, her bir karıncanın ürettiği çözümlerin fitness değerleri hesaplanır.
Fitness değerlerine göre, her bir karınca tarafından üretilen çözüm (güzergah, path) üzerinde bulunan yollara feromon bırakılır.
Tüm koloni turunu tamamlayınca, mevcut en iyi çözüm üzerinde bulunan yollara yeniden feromon bırakılır (global pheromone update). Bunun amacı mevcut en iyi çözümü pekiştirmektir. Sonrasında tüm yollardan buharlaşma oranı miktarınca feromon buharlaştırılır.
Maksimum koloni sayısına ulaşana kadar yeni karınca kolonileri bırakılır ve sonuçta döngü sonlandırılarak en iyi çözüm rapor edilir.
27/11/2017 17
ACO parametrelerini ayarla
Yeni bir koloni oluştur
(koloni büyüklüğü kadar karınca tanımla)
E
H
Feromon buharlaştır ve yerel feromon
güncelle
Tüm karıncalar
turlarını tamamladı
mı?
Koloni tarafından üretilen en iyi çözümü bul ve bu
güzergah üzerine tekrar feromon bırak
E
HDurdurma kriteri
sağlandı mı?
Yeni çözüm üretmesi için bir karıncayı
serbest bırak ve çözüm üretsin
Dur ve en iyi çözümü (en yoğun
feromon içeren güzergahı) göster
Başla
Adım 1
Adım 2
Adım 3
Adım 4
Adım 5
Adım 6
Video ACO2
Video: https://www.youtube.com/watch?v=eVKAIufSrHs
* Program İndir: http://ikucukkoc.baun.edu.tr/lectures/EMM4131/AntSimJar.zip
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 18
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 19
A B
C DFeromon
AntMesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
Başlangıçta, tüm yollara eşit oranda feromon bırakılır.
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 20
A B
C D
Bir karınca, rastgele bir noktaya yerleştirilir.
Feromon
AntMesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 21
Karınca bu noktadan hangi noktaya hareket edeceğine:
- yolların feromon miktarları
- yolların uzunlukları
bilgilerine göre hesaplanan olasılıklara
göre karar verir.
Karıncanın BC yolunu tercih ettiğini varsayalım.
Feromon
Ant
A B
C D
Mesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 22
A B
C D
Karınca şu anda C noktasında ve {B, C} noktalarını ziyaret etmiş bulunmakta.
Dolayısıyla B ve C noktalarını tekrar ziyaret edemez.
Yeniden, mümkün olan noktalar arasından
hangisine hareket edeceğini stokastik olarak
feromon miktarları ve uzaklıkları
dikkate alarak seçer.
CD yolunu tercih ettiğini varsayalım.
Feromon
AntMesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 23
A B
C D
Karınca şu anda D noktasında bulunmakta
ve {B, C, D} noktalarını ziyaret etmiş durumda.
Gidebileceği sadece bir nokta kaldı:
A noktası
Feromon
AntMesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 24
A B
C D
Sonunda, BC, CD, ve DA yollarını izleyerek
tüm noktaları ziyaret etmiş oldu.
Başladığı noktaya dönebilmesi için
AB yolu da turuna eklenir.
Feromon
Ant
Şimdi, tüm noktalardan feromon buharlaştırılır.
Mesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 25
A B
C D
Sonra, karıncanın takip ettiği güzergah
üzerinde bulunan bağlantıların feromon
miktarı artırılır.
Feromon
AntMesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
ACO Örnek: 4-Şehirli Gezgin Satıcı Problemi (GSP)
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ 26
Rastgele bir noktaya (örn. A noktası)
konumlandırılmış yeni bir karınca yeni bir çözüm için tura başlar.
Nereye gidecek?
Bu kez karınca, mesafeleri ve yollar üzerinde bulunan
mevcut feromon miktarlarını dikkate alarak seçimlerde
bulunarak yeni bir çözüm oluşturacak.
A B
C DFeromon
AntMesafeler
AB: 10, AC: 10, AD, 30, BC, 40, CD 20
Kaynakça
Çayıroğlu, İ., Optimizasyon Teknikleri Ders Notları, Karabük Üniversitesi,
http://www.ibrahimcayiroglu.com/Dokumanlar/OptimizasyonTeknikleri/OptimizasyonTeknikleri-
6.Hafta-Karinca_Koloni_Algoritmasi.pdf, Erişim Tarihi: 10 Kasım 2017.
Keedwell, E. C., Nature Inspired Computation Lecture Notes, Exeter Universitesi,
http://emps.exeter.ac.uk/computer-science/staff/eckeedwe
M. Dorigo and T. Stützle. Ant Colony Optimization, MIT Press, Cambridge, 2004.
Aydın, İ., Meta Sezgisel Yöntemler Ders Notları, Fırat Üniversitesi,
http://web.firat.edu.tr/iaydin/bmu579/bmu_579_bolum6.pdf, Erişim Tarihi 14 Kasım 2017.
Akyol, S., Alataş, B., Güncel Sürü Zekası Optimizasyon Algoritmaları, Nevşehir Üniversitesi Fen
Bilimleri Enstitü Dergisi 1 (2012) 36-50.
Tamer, S., Karakuzu, C., Parçacık Sürüsü Optimizasyon Algoritması ve Benzetim Örnekleri,
http://www.emo.org.tr/ekler/e5d75028d92047a_ek.pdf, Erişim Tarihi: 12.11.2017.
ACO Website (by Dorigo), http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html
27/11/2017EMM4131 - Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ