SlideShare une entreprise Scribd logo
1  sur  9
Yapay Arı Kolonisi Algoritması
(Artifical Bee Colony Algorithm)
1
Orhan Eripek
Senior Oracle DBA, 10g/11g OCP
Ph. D. Program in Computer Engineering
Yapay Arı Kolonisi Algoritması (Artifical Bee Colony Algorithm)
2
Yapay Arı Kolonisi algoritması (ABC) Derviş Karaboğa tarafından arıların topluluk
olarak yiyecek arama davranışlarını temel alarak geliştirilmiş bir optimizasyon
algoritmasıdır.
Yapay arı kolonisi algoritması (Artificial bee colony algorithm), bal arısı sürülerinin
kendilerine özgü zeki davranışlarını örnek alarak, arıların besin ararken kullandıkları
yöntemlerden esinlenerek oluşturulmuş bir optimizasyon algoritmasıdır. Sürü zekasına
dayanan bu algoritma, doğada sürü halinde hareket eden arıların besin bulmada
sergilemiş oldukları davranışları temel alarak optimizasyon problemlerini çözmek için
kullanılmaktadır.
Sosyal bir düzen içinde yaşayan bal arıları, içgüdüsel olarak bu düzeni bilir ve
hayatını bu kurallara uygun olarak devam ettirir. Kovana ait olan her arının görevi
bellidir. Arılar bu görevlerin dışına çıkmazlar. Yiyeceklerin depolanması, balın
getirilmesi, iletişim ve besin arama gibi işler sosyal düzen içinde kendilerine biçilen
görevlerdir. Bu muazzam denge ve işleyiş araştırmacıların dikkatinden kaçmamış ve
onları bu davranışları modellemeye teşvik etmiştir.
Kolonide yaşayan arılar üç çeşit olarak sınıflandırılmışlardır. Bunlar: kraliçe arı
(queen), erkek arı (drone) ve dişi olan işçi arılardır (worker).
Arıların Yem Bulma Davranışları
Arı kolonisinin yaşamının devamının sağlanması için en önemli işlerden birisi besin
aramadır. Kovan içinde biriktirilen kaynaklar ve ortamdaki bulunabilecek yem
kaynakları ve arıların etkileşimleri bu süreçteki önemli etkenlerdir. Arının kovandan
ayrılmasıyla başlayan arama süreci, başlangıçta rastgele yapılan yiyecek araştırmaları ile
devam eder. Bulunan kaynakta yiyecek miktarının azalması neticesinde arılar yeni yem
aramaya yada arılardan aldığı bilgiye göre başka kaynaklara yönelmeye başlarlar. Bulunan
kaynakların bilgilerinin arılarca birbirine iletilmesi ve bulunan polen, su vb. kaynakların kovana
getirilmesi bu süreç içinde yapılan faaliyetlerdir.
Arılar arasındaki bilginin iletilmesi, kolektif yapının ve ortak bilginin oluşmasındaki en
önemli konudur. Arıların yaşam alanı olan kovan bazı bölümlere ayrılabilir. Bu alanlardan biri
de bolum bilgi paylaşımının gerçekleştiği dans alanı (dancing area) olarak adlandırılan alandır.
Arılar arasında bilgi paylaşımı arıların yapmış olduğu dansla (waggle dance) olur. Paylaşılan
bilgi ile kaliteli yeni yiyecek kaynakları keşfedilir (Grüter ve Farina, 2009).
Kaynaklardan yiyecek getiren arılar diğer arıları bu kaynaklara yönlendirmek için kaynağın
konum bilgisini diğer arılara iletmesi gerekir. Konumla ilgili bilgiyi alan arı bu hedefe ulaşmak
için güneş ışığından faydalanır. Yörüngeleri ile güneş arasındaki açıyı hesaplayabilmektedirler.
Enerji tüketimine göre uzaklık belirleyen arılar, yüklerine göre farklı yükseklikte uçarak
enerjilerini ayarlamaktadırlar (Akay, 2009).
3
4
100 metreden 10 kilometreye kadar olan geniş bir alan içerisinde bulunan kaynaklarda
ilgili bilgi aktarımında kuyruk dansı kullanılmaktadır. Bu dans 8 rakamına benzeyen bir dans
çeşididir.Dansı izleyen arıların bir titreşim oluşturulması ile bu dansı yapan arı,dansına son
verir. Her 15 saniyede dansın tekrarlanma sayısı,nektar kaynağının uzaklığı hakkında bilgi
vermektedir. Daha az tekrarlanma sayısı daha uzak bölgeleri ifade etmektedir. Yön bilgisi
aşağıdaki şekildeki gibi 8 rakamı şeklindeki dansın açı bilgisinden elde edilir. Şekilde verilen
örnekte dansı izleyen arılar, danstan güneşle yiyecek arasındaki açının 45 derece olduğunu
anlamaktadırlar. Arılar arasında uzak mesafede bulunan kaynakla ilgili bilgi paylaşımı
arasında daha hızlı dans edilir.
5
Arıların yiyecek arama ve getirme davranışları
yandaki şekilde gösterilmiştir. Bu davranışlar şekil
üzerinde incelemeyi ve açıklamaları Akay şöyle
yapmıştır: A ve B
bulunmuş kaynaklar olarak farzedilmiştir.
Başlangıçta görevi belli olmayan ve
kaynak bilgisinden yoksun arı aramaya
başlayacaktır. Bu arı için iki durum
mevcuttur: Birincisi; S ile gösterilen bu arı kaşif arı
olabilir ve yiyecek aramaya
başlayabilir İkincisi; Dans eden arıları izleyerek tarif
edilen kaynaklara giden bir
gözcü arı olabilir. Bu arı R ile gösterilmiştir.
Kaynaklara giden arılar buldukları kaynaklardan
nektar getirmeye başlarlar. Böylece bu arılar
görevli bir arı haline gelmişlerdir. Nektarı kovana
getiren arı için bundan sonra üç seçenek vardır:
i) Bilgi paylaşımında bulunmadan kaynaktan nektar
getirmeye devam edebilir.
Bu arı EF2 ile gösterilmiştir.
ii) Kaynağa dönmeden önce dans ederek nektar
kaynağının yeri ve miktarı
hakkında diğer arılara bilgi paylaşımında bulunarak
diğer arıları bu kaynağa
yönlendirebilir. Bu arı EF1 ile gösterilmiştir.
iii) Kaynağı terk ederek dans alanında gözcü arı
olabilir. Bu arı UF ile
gösterilmiştir.
Algoritmada görevli arıların sayısı toplam yiyecek kaynağına eşittir. İşçi arıların sayısı gözcü
arıların sayısına eşittir. Kaynakta görevli arı kaynaktaki nektar miktarı bitince kaşif arı olmaktadır.
Arı kolonilerinin yiyecek kaynaklarının konumları çözülmek istenen problemin muhtemel
çözümlerine, nektar miktarı ise çözümün kalitesini ifade etmektedir. ABC algoritması en fazla
nektara sahip kaynağın yerini bulmaya çalışarak arama uzaydaki çözümlerden problemin
minimumunu ya da maksimumunu veren noktayı (çözümü) bulmaya çalışmaktadır (Akay, 2009).
Yiyecek aranırken başlangıç olarak kaşif arılar rastgele yiyecek aramaya başlarlar. Kaynağı
bulan kaşif arı artık görev sahibi olan bir arı haline gelmiştir ve kovana nektar götürmeye
başlarlar. Görevli arı kovana nektarını taşır ve yem getirdiği kaynaklar ilgili bilgiyi dans alanında
yaptığı dans ile bekleyen gözcü arılara iletirler. Kaynaktaki nektar bitmiş ise kendisi de gözcü arı
haline gelecektir. Gözcü arılar dansları izledikten sonra yiyeceğin kalitesi doğrultusunda bir
kaynağı tercih ederler.
ABC algoritmasının adımları:
· Başlangıç yiyecek kaynağı bölgelerini oluşturulması
· REPEAT
· İşçi arıları yiyecek kaynağına gönder ve nektar miktarının hesaplanması
· Gözcü arıların seçilimde kullanacakları olasılık değerlerinin hesaplanması
· Gözcü arıların hesaplanan olasılık değerlerine göre yiyecek kaynağı
bölgesi seçmeleri
· Kaynaktan ayrılma kriteri: limit ve kaşif arı üretilmesi
· UNTIL çevrim sayısı 6
7
İteration: 2000 İteration: 1000
İteration: 500 İteration: 100 İteration: 50
İteration: 5000
SONUÇ
8
Akay, ABC algoritmasının özelliklerini şöyle ifade etmektedir (Akay, 2009):
· Basit ve esnek bir algoritmadır.
· Arıların gerçek yiyecek arama davranışlarına çok yakın olarak tasarlanmıştır.
· Sürü zekasına dayalıdır.
· Başlangıçta nümerik problemler için tasarlanmış ancak ilerleyen süreçte gerçek
tasarım problemleri içinde kullanılmıştır.
· Kontrol parametresi azdır.
9

Contenu connexe

Tendances

Particle swarm optimization
Particle swarm optimizationParticle swarm optimization
Particle swarm optimizationanurag singh
 
Ant colony optimization
Ant colony optimizationAnt colony optimization
Ant colony optimizationJoy Dutta
 
Ant Colony Optimization - ACO
Ant Colony Optimization - ACOAnt Colony Optimization - ACO
Ant Colony Optimization - ACOMohamed Talaat
 
Oracle veritabani performans kontrol listesi
Oracle veritabani performans kontrol listesiOracle veritabani performans kontrol listesi
Oracle veritabani performans kontrol listesiOrhan ERIPEK
 
Artificial Bee Colony: An introduction
Artificial Bee Colony: An introductionArtificial Bee Colony: An introduction
Artificial Bee Colony: An introductionAdel Rahimi
 
5. FIREFLY ALGORITHM OPTIMIZATION.pptx
5. FIREFLY ALGORITHM OPTIMIZATION.pptx5. FIREFLY ALGORITHM OPTIMIZATION.pptx
5. FIREFLY ALGORITHM OPTIMIZATION.pptxDocStudent1
 
Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithmszamakhan
 
Particle swarm optimization
Particle swarm optimizationParticle swarm optimization
Particle swarm optimizationSuman Chatterjee
 
Artificial bee colony (abc)
Artificial bee colony (abc)Artificial bee colony (abc)
Artificial bee colony (abc)quadmemo
 
数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化atmarksharp
 
Particle swarm optimization
Particle swarm optimization Particle swarm optimization
Particle swarm optimization Ahmed Fouad Ali
 
Spider Monkey Optimization Algorithm
Spider Monkey Optimization AlgorithmSpider Monkey Optimization Algorithm
Spider Monkey Optimization AlgorithmAhmed Fouad Ali
 
Simulated Annealing
Simulated AnnealingSimulated Annealing
Simulated AnnealingJoy Dutta
 

Tendances (20)

Cuckoo search algorithm
Cuckoo search algorithmCuckoo search algorithm
Cuckoo search algorithm
 
Particle swarm optimization
Particle swarm optimizationParticle swarm optimization
Particle swarm optimization
 
Ant colony optimization
Ant colony optimizationAnt colony optimization
Ant colony optimization
 
Ant Colony Optimization - ACO
Ant Colony Optimization - ACOAnt Colony Optimization - ACO
Ant Colony Optimization - ACO
 
Oracle veritabani performans kontrol listesi
Oracle veritabani performans kontrol listesiOracle veritabani performans kontrol listesi
Oracle veritabani performans kontrol listesi
 
Final project
Final projectFinal project
Final project
 
Artificial Bee Colony: An introduction
Artificial Bee Colony: An introductionArtificial Bee Colony: An introduction
Artificial Bee Colony: An introduction
 
Crow search algorithm
Crow search algorithmCrow search algorithm
Crow search algorithm
 
5. FIREFLY ALGORITHM OPTIMIZATION.pptx
5. FIREFLY ALGORITHM OPTIMIZATION.pptx5. FIREFLY ALGORITHM OPTIMIZATION.pptx
5. FIREFLY ALGORITHM OPTIMIZATION.pptx
 
Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithms
 
Particle swarm optimization
Particle swarm optimizationParticle swarm optimization
Particle swarm optimization
 
Simulated annealing
Simulated annealingSimulated annealing
Simulated annealing
 
Artificial bee colony (abc)
Artificial bee colony (abc)Artificial bee colony (abc)
Artificial bee colony (abc)
 
bat algorithm
bat algorithmbat algorithm
bat algorithm
 
数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化
 
Particle swarm optimization
Particle swarm optimization Particle swarm optimization
Particle swarm optimization
 
Spider Monkey Optimization Algorithm
Spider Monkey Optimization AlgorithmSpider Monkey Optimization Algorithm
Spider Monkey Optimization Algorithm
 
Ant colony optimization
Ant colony optimizationAnt colony optimization
Ant colony optimization
 
Bat algorithm
Bat algorithmBat algorithm
Bat algorithm
 
Simulated Annealing
Simulated AnnealingSimulated Annealing
Simulated Annealing
 

Yapay arı kolonisi algoritması

  • 1. Yapay Arı Kolonisi Algoritması (Artifical Bee Colony Algorithm) 1 Orhan Eripek Senior Oracle DBA, 10g/11g OCP Ph. D. Program in Computer Engineering
  • 2. Yapay Arı Kolonisi Algoritması (Artifical Bee Colony Algorithm) 2 Yapay Arı Kolonisi algoritması (ABC) Derviş Karaboğa tarafından arıların topluluk olarak yiyecek arama davranışlarını temel alarak geliştirilmiş bir optimizasyon algoritmasıdır. Yapay arı kolonisi algoritması (Artificial bee colony algorithm), bal arısı sürülerinin kendilerine özgü zeki davranışlarını örnek alarak, arıların besin ararken kullandıkları yöntemlerden esinlenerek oluşturulmuş bir optimizasyon algoritmasıdır. Sürü zekasına dayanan bu algoritma, doğada sürü halinde hareket eden arıların besin bulmada sergilemiş oldukları davranışları temel alarak optimizasyon problemlerini çözmek için kullanılmaktadır. Sosyal bir düzen içinde yaşayan bal arıları, içgüdüsel olarak bu düzeni bilir ve hayatını bu kurallara uygun olarak devam ettirir. Kovana ait olan her arının görevi bellidir. Arılar bu görevlerin dışına çıkmazlar. Yiyeceklerin depolanması, balın getirilmesi, iletişim ve besin arama gibi işler sosyal düzen içinde kendilerine biçilen görevlerdir. Bu muazzam denge ve işleyiş araştırmacıların dikkatinden kaçmamış ve onları bu davranışları modellemeye teşvik etmiştir. Kolonide yaşayan arılar üç çeşit olarak sınıflandırılmışlardır. Bunlar: kraliçe arı (queen), erkek arı (drone) ve dişi olan işçi arılardır (worker).
  • 3. Arıların Yem Bulma Davranışları Arı kolonisinin yaşamının devamının sağlanması için en önemli işlerden birisi besin aramadır. Kovan içinde biriktirilen kaynaklar ve ortamdaki bulunabilecek yem kaynakları ve arıların etkileşimleri bu süreçteki önemli etkenlerdir. Arının kovandan ayrılmasıyla başlayan arama süreci, başlangıçta rastgele yapılan yiyecek araştırmaları ile devam eder. Bulunan kaynakta yiyecek miktarının azalması neticesinde arılar yeni yem aramaya yada arılardan aldığı bilgiye göre başka kaynaklara yönelmeye başlarlar. Bulunan kaynakların bilgilerinin arılarca birbirine iletilmesi ve bulunan polen, su vb. kaynakların kovana getirilmesi bu süreç içinde yapılan faaliyetlerdir. Arılar arasındaki bilginin iletilmesi, kolektif yapının ve ortak bilginin oluşmasındaki en önemli konudur. Arıların yaşam alanı olan kovan bazı bölümlere ayrılabilir. Bu alanlardan biri de bolum bilgi paylaşımının gerçekleştiği dans alanı (dancing area) olarak adlandırılan alandır. Arılar arasında bilgi paylaşımı arıların yapmış olduğu dansla (waggle dance) olur. Paylaşılan bilgi ile kaliteli yeni yiyecek kaynakları keşfedilir (Grüter ve Farina, 2009). Kaynaklardan yiyecek getiren arılar diğer arıları bu kaynaklara yönlendirmek için kaynağın konum bilgisini diğer arılara iletmesi gerekir. Konumla ilgili bilgiyi alan arı bu hedefe ulaşmak için güneş ışığından faydalanır. Yörüngeleri ile güneş arasındaki açıyı hesaplayabilmektedirler. Enerji tüketimine göre uzaklık belirleyen arılar, yüklerine göre farklı yükseklikte uçarak enerjilerini ayarlamaktadırlar (Akay, 2009). 3
  • 4. 4 100 metreden 10 kilometreye kadar olan geniş bir alan içerisinde bulunan kaynaklarda ilgili bilgi aktarımında kuyruk dansı kullanılmaktadır. Bu dans 8 rakamına benzeyen bir dans çeşididir.Dansı izleyen arıların bir titreşim oluşturulması ile bu dansı yapan arı,dansına son verir. Her 15 saniyede dansın tekrarlanma sayısı,nektar kaynağının uzaklığı hakkında bilgi vermektedir. Daha az tekrarlanma sayısı daha uzak bölgeleri ifade etmektedir. Yön bilgisi aşağıdaki şekildeki gibi 8 rakamı şeklindeki dansın açı bilgisinden elde edilir. Şekilde verilen örnekte dansı izleyen arılar, danstan güneşle yiyecek arasındaki açının 45 derece olduğunu anlamaktadırlar. Arılar arasında uzak mesafede bulunan kaynakla ilgili bilgi paylaşımı arasında daha hızlı dans edilir.
  • 5. 5 Arıların yiyecek arama ve getirme davranışları yandaki şekilde gösterilmiştir. Bu davranışlar şekil üzerinde incelemeyi ve açıklamaları Akay şöyle yapmıştır: A ve B bulunmuş kaynaklar olarak farzedilmiştir. Başlangıçta görevi belli olmayan ve kaynak bilgisinden yoksun arı aramaya başlayacaktır. Bu arı için iki durum mevcuttur: Birincisi; S ile gösterilen bu arı kaşif arı olabilir ve yiyecek aramaya başlayabilir İkincisi; Dans eden arıları izleyerek tarif edilen kaynaklara giden bir gözcü arı olabilir. Bu arı R ile gösterilmiştir. Kaynaklara giden arılar buldukları kaynaklardan nektar getirmeye başlarlar. Böylece bu arılar görevli bir arı haline gelmişlerdir. Nektarı kovana getiren arı için bundan sonra üç seçenek vardır: i) Bilgi paylaşımında bulunmadan kaynaktan nektar getirmeye devam edebilir. Bu arı EF2 ile gösterilmiştir. ii) Kaynağa dönmeden önce dans ederek nektar kaynağının yeri ve miktarı hakkında diğer arılara bilgi paylaşımında bulunarak diğer arıları bu kaynağa yönlendirebilir. Bu arı EF1 ile gösterilmiştir. iii) Kaynağı terk ederek dans alanında gözcü arı olabilir. Bu arı UF ile gösterilmiştir.
  • 6. Algoritmada görevli arıların sayısı toplam yiyecek kaynağına eşittir. İşçi arıların sayısı gözcü arıların sayısına eşittir. Kaynakta görevli arı kaynaktaki nektar miktarı bitince kaşif arı olmaktadır. Arı kolonilerinin yiyecek kaynaklarının konumları çözülmek istenen problemin muhtemel çözümlerine, nektar miktarı ise çözümün kalitesini ifade etmektedir. ABC algoritması en fazla nektara sahip kaynağın yerini bulmaya çalışarak arama uzaydaki çözümlerden problemin minimumunu ya da maksimumunu veren noktayı (çözümü) bulmaya çalışmaktadır (Akay, 2009). Yiyecek aranırken başlangıç olarak kaşif arılar rastgele yiyecek aramaya başlarlar. Kaynağı bulan kaşif arı artık görev sahibi olan bir arı haline gelmiştir ve kovana nektar götürmeye başlarlar. Görevli arı kovana nektarını taşır ve yem getirdiği kaynaklar ilgili bilgiyi dans alanında yaptığı dans ile bekleyen gözcü arılara iletirler. Kaynaktaki nektar bitmiş ise kendisi de gözcü arı haline gelecektir. Gözcü arılar dansları izledikten sonra yiyeceğin kalitesi doğrultusunda bir kaynağı tercih ederler. ABC algoritmasının adımları: · Başlangıç yiyecek kaynağı bölgelerini oluşturulması · REPEAT · İşçi arıları yiyecek kaynağına gönder ve nektar miktarının hesaplanması · Gözcü arıların seçilimde kullanacakları olasılık değerlerinin hesaplanması · Gözcü arıların hesaplanan olasılık değerlerine göre yiyecek kaynağı bölgesi seçmeleri · Kaynaktan ayrılma kriteri: limit ve kaşif arı üretilmesi · UNTIL çevrim sayısı 6
  • 7. 7 İteration: 2000 İteration: 1000 İteration: 500 İteration: 100 İteration: 50 İteration: 5000
  • 8. SONUÇ 8 Akay, ABC algoritmasının özelliklerini şöyle ifade etmektedir (Akay, 2009): · Basit ve esnek bir algoritmadır. · Arıların gerçek yiyecek arama davranışlarına çok yakın olarak tasarlanmıştır. · Sürü zekasına dayalıdır. · Başlangıçta nümerik problemler için tasarlanmış ancak ilerleyen süreçte gerçek tasarım problemleri içinde kullanılmıştır. · Kontrol parametresi azdır.
  • 9. 9