Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü
Bu dersin sunumları, “Singiresu S. Rao, Engineering Optimization: Theory and Practice, Wiley, 2009.”
kitabı kullanılarak hazırlanmıştır.
İçerik
Sürü algoritmaları
Parçacık sürü optimizasyonu
Karınca kolonisi optimizasyonu
Sürü algoritmaları, kolektif zekadan esinlenerek geliştirilmiştir.
Kolektif zeka, bir ortamdaki çok sayıda bireyin işbirliğine dayanır.
Balık kümeleri, kuş sürüleri ve karınca kolonileri kolektif zeka kullanır.
Kolektif zeka, tek noktada merkezi değildir, kendi kendisine organize olabilir ve bulunduğu ortamın tamamında
dağıtıktır.
İki temel alt türü vardır:
Particle Swarm Optimization (PSO)
Ant Colony Optimization (ACO)
3
İçerik
Sürü algoritmaları
Parçacık sürü optimizasyonu
Karınca kolonisi optimizasyonu
4
Kuş sürülerinin ve balık kümelerinin davranışından esinlenerek geliştirilmiştir.
R. Eberhart and J. Kennedy tarafından 1995 yılında önerilmiştir.
Algoritmanın hedefi, tüm parçacıkları çok boyutlu uzayda optimum noktaya yerleştirmek.
Tüm bireyler başlangıçta rastgele yerleştirilirler.
Tüm bireylere rastgele başlangıç hareket hızları atanır.
Topluluktaki her birey kendisinin en iyi çözümünü ve
topluluğun en iyi çözümünü kullanarak kendisinin hızına göre yer değiştirir.
Amaç fonksiyonu her yer değiştirmeden sonra güncellenir.
5
Her iterasyonda her parçacığın hareket hızı kendi en iyi çözümüne ve topluluğun en iyi çözümüne göre güncellenir.
v
i: i
. parçacığın hızı,w, c
1vec
2:
ağırlık katsayıları,p
ibest:
kendisinin en iyi çözümü,p
gbest:
topluluğun en iyi çözümü,p
i(t) : i.
parçacığınt.
zamandaki konumudur. Her parçacığında yeni konumu aşağıdaki şekilde hesaplanır:
Parçacık sürü optimizasyonu
Inertia Component
Social Component
Cognitive Component
Başlangıçta çok sayıda parçacık çözüm uzayına yerleştirilir.
Her parçacığın başlangıç konumu ve başlangıç hızı rastgele belirlenir.
7
Parçacık sürü optimizasyonu
n
boyutlu uzayda her parçacığın her yönde (boyutta) hızı hesaplanır ve konumu değiştirilir.8
Algoritma
9
Parçacık sürü optimizasyonu
Algoritma
Örnek
Aşağıdaki fonksiyon için çözüm uzayı 3 boyutludur.
Her parçacık üç değişkenin değerlerini içerir ve aşağıdaki gibi tanımlanır.
fonksiyonu uygunluk fonksiyonudur.
11
2 2 2
1 2 3 1 2 3
( , , )
f x x x x x x
1 2 3
( , x x x , )
1 2 3
( , , ) f x x x
Parçacık sürü optimizasyonu
Örnek
Grafikteki fonksiyonun maksimum değeri bulunacaktır.
Toplam 4 parçacık rastgele yerleştirilir.
12
Örnek - devam
Her parçacığın fitness değeri hesaplanır ve global optimum belirlenir.
Her parçacık global optimuma doğru hareket ettirilir.
13
Parçacık sürü optimizasyonu
Örnek - devam
Her parçacığın yeni konumuna göre global optimum her iterasyonda yeniden hesaplanır.
Yeni global en iyiye ve her parçacık kendi en iyi değerine göre hareket ettirilir.
Örnek - devam
Her parçacığın atalet bileşeni (inertia component), kendi en iyi değeri (cognitive component) ve global en iyi (social component) parametrelerine göre hareket ettirilir.
15
Parçacık sürü optimizasyonu
Örnek
16
Örnek: Six-humb camel back
Fonksiyon iki tanesi global olmak üzere 6 minimuma sahiptir.
17
2 4 6 2 4
1 2 1 1 1 1 2 2 2 1 2
( , ) 4 2.1 1 4 4 ( 5 , 5)
f x x x x 3x x x x x x x
Parçacık sürü optimizasyonu
Örnek: Six-humb camel back - devam
Problemde iki değişken vardır ve iki boyutludur (
x
1ve x
2). Başlangıç çözümü rastgele aşağıdaki gibi oluşturulabilir.
18
Parçacık x10 x20 Fitness pbest
P1 -3,71 2,81 707,54 P1
P2 1,30 -1,69 24,48 P2
P3 3,57 -3,36 156,37 P3
P4 1,24 2,84 258,39 P4
P5 -2,01 1,61 -10,59 P5
P6 -2,60 0,75 -96,84 P6
P7 -1,59 2,24 83,94 P7
P8 -4,98 -4,38 207,89 P8
P9 -3,50 -2,70 -94,53 P9
P10 -3,35 4,68 1634,85 P10
g P
Örnek: Six-humb camel back - devam
Her birey için iki boyutta yer değiştirme miktarı hesaplanır.
P10= (-3.71, 2.81) P10,best= (-3.71, 2.81) gbest0= (-2.60, 0,75)
vP1, x10= 0 + c1rand1(P10,best(x1)– x10) + c2rand2(gbest0(x1) – x10) vP1, x20= 0 + c1rand1(P10,best(x2)– x20) + c2rand2(gbest0(x2)– x20)
19
Parçacık sürü optimizasyonu
Örnek: Six-humb camel back - devam
Hesaplanan örnek değerler.
1. parçacığın yeni konumu
x11 = x10+ vP1, x10 = -1,67 x21 = x20+ vP1, x20 = 1,37
20
Parçacık vP1, x10 vP1, x20 rand1 rand2
P1 2,04 -1,44 0,4 0,6
P2 -5,30 5,28 0,3 0,8
P3 -8,58 8,36 0,1 0,9
P4 -5,20 -1,96 0,7 0,8
P5 0 0 0,5 0,1
P6 0,47 0,69 0,4 0,4
P7 -0,25 -0,38 0,9 0,3
P8 0 0 0,3 0
P9 0,60 1,72 0,1 0,2
P10 1,34 -3,07 0,6 0,5
Örnek: Six-humb camel back - devam
Birinci iterasyon için hesaplanan değerler.
Her iterasyonda gbest ve pbest değerleri güncellenir. 21
Parçacık x10 vp1,11 x20 vp1,21 x11 x21
P1 -3,71 2,04 2,81 -1,44 -1,67 1,37
P2 1,30 -5,30 -1,69 5,28 -4,00 3,60
P3 3,57 -8,58 -3,36 8,36 -5,00 5,00
P4 1,24 -5,20 2,84 -1,96 -3,96 0,87
P5 -2,01 0 1,61 0 -2,01 1,61
P6 -2,60 0,47 0,75 0,69 -2,13 1,44
P7 -1,59 -0,25 2,24 -0,38 -1,84 1,86
P8 -4,98 0 -4,38 0 -4,98 -4,38
P9 -3,50 0,60 -2,70 1,72 -2,01 1,61
P10 -3,35 1,34 4,68 -3,07 -2,01 1,61
Parçacık sürü optimizasyonu
Parametreler
Parçacık sayısı
Genellikle 20-40 arasında alınır. Problem karmaşıklığına göre 100’den fazla parçacık kullanılabilir.
Parçacık boyutu
Problemdeki parametre sayısına bağlıdır.
Vmax
Bir parçacıkta bir iterasyonda yapılabilecek maksimum hız değişikliğini gösterir.
Cognitive ve social bileşen katsayıları
[0, 4] aralığındadır ve genellikle 2 seçilir.
Avantaj ve dezavantajları
Fitness fonksiyonu türevlenebilir olmayabilir.
PSO algoritması çok büyük boyutlu problemlerde kullanılabilir.
Alternatif yöntemlere göre kaliteli çözümleri daha hızlı elde edebilir.
İyi düzeyde bir çözüm elde etmek için parametrelerin iyi ayarlanması gereklidir.
Farklı parametre değerleri için çözümler elde edilmesi gereklidir.
23
Parçacık sürü optimizasyonu
Algoritmanın durdurulması
Belirlenen maksimum iterasyona ulaşılması
İstenen kriterleri sağlayan çözüme ulaşılması
Belirli bir süre en iyi çözümde iyileşme sağlanamaması
24
Sezgiseller
Parçacık sayısı 20-40 arası alınmalıdır.
Her parçacığın hareket hızı sınırlandırılmalıdır.
Öğrenme faktörleri (
c
1ve c
2) 2 olarak alınmalıdır. Çözüm uzayının dışına çıkan parçacıklar tekrar çözüm uzayı içerisine alınmalıdır.
Atalet sabiti (inertia component) hıza göre oransal seçilmelidir ve sınırlandırılmalıdır.
25
Parçacık sürü optimizasyonu
Örnek uygulama
https://www.youtube.com/watch?v=TbANtwM2CWw&feature=youtu.be
Sürü algoritmaları
Parçacık sürü optimizasyonu
Karınca kolonisi optimizasyonu
27
Karınca kolonisi optimizasyonu
1992 yılında Marco Dorigo tarafından geliştirilmiştir*.
Karıncaların yiyecek madde ile yuvaları arasındaki en kısa yolu bulmalarından esinlenilmiştir.
Karınca kolonisi optimizasyonu genetik algoritma gibi popülasyon tabanlı yaklaşıma sahiptir.
Karınca popülasyonu içindeki her bir karınca çözümün bir parçasını oluşturur.
Her karınca diğer karıncaların hareketini etkiler.
28
*Marco Dorigo (1992). Optimization, Learning and Natural Algorithms. Ph.D.Thesis, Politecnico di Milano, Italy, “The Metaphor of the Ant Colony and its Application to Combinatorial Optimization”
Her karınca arkasında bir kimyasal madde (feromen) bırakarak gider.
Daha çok karıncanın kullandığı yolda daha fazla feromen birikir.
Feromen maddesi birikmesi sınırsız değildir.
Yoldaki feromen maddesi zamana göre buharlaşarak azalır.
Bir süre sonra feromen maddesi en kısa yolu oluşturur ve karıncalar bu yolu takip eder.
29
*Marco Dorigo (1992). Optimization, Learning and Natural Algorithms. Ph.D.Thesis, Politecnico di Milano, Italy, “The Metaphor of the Ant Colony and its Application to Combinatorial Optimization”
Karınca kolonisi optimizasyonu
A B
A B
Engel
31
d=0.5
d=0.5
d=1 d=1
d=1
d=1
A B
C E
F
D
Karınca kolonisi optimizasyonu
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.
32
33
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.
A B
C E
F
D
0.5
0.5 1 1
1
1
16 karınca A-F arasında 16 karınca F-A arasında hareket ediyor.
Karınca kolonisi optimizasyonu
i
den sonraj
’ye geçiş olasılığı aşağıdaki gibi hesaplanır. ,
i
ilej
arasındaki feromen maddesi miktarıdır. ,
i
ilej
arasındaki yolun uzunluğudur. ,
i
ilej
arasındaki yolun ağırlığıdır. ve sabittir ve genellikle 1 ve 2’ye yakın değerler alınır.
, sonraki adımda geçilebilecek noktalardır.
35
Feromen maddesi miktarı her adımda veya turda değişir.
Yoldan her geçen karınca artırır, her adımda belirli bir buharlaşma oranında azalır.
, buharlaşma sabitidir.
,
i
ilej
arasındaki feromen maddesi değişim miktarıdır.
m
, toplam karınca sayısıdır.
Q,
sabit sayıdır,L
k isek
. karıncanın toplam yol uzunluğudur./ , . ( , )
0 , . ( , )
k k
ij
Q L k karınca i j arasını kullanmışsa k karınca i j arasını kullanmamışsa
Karınca kolonisi optimizasyonu
Algoritma
36
Karınca algoritmaları sadece yol problemi çözümünde değil başka tür problemlerin çözümünde de kullanılmaktadır.
Sadece feromen maddesi çokluğuna göre algoritma çalışırsa, alt-optimal çözüme düşülür (lokal minimum).
Global optimumu 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) vardır ve her t zamanında belirli bir oranda azalır.
37
Karınca kolonisi optimizasyonu
Ş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 alınır. Her adımda her karınca yeni bir şehre hareket eder.
Sonraki şehre geçişte bulunulan noktaya uzaklığı ve
yoldaki feromen miktarına bağlı rastgele bir seçim yapı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 tekrar gitmesi tabu listesi ile engellenir.
Her hareketten sonra her karıncanın gittiği şehirler güncellenir.
Avantajları
Yapısı itibarıyla paralel çalıştırılabilir.
Karınca kolonisinde merkezi bir birime ihtiyacı yoktur.
İyi sonuçlara hızlı yakınsama yapabilir.
Gezgin satıcı ve benzeri problemlerde etkin çözüm sağlar.
Zamana göre değişen dinamik uygulamalarda kullanılabilir.
Dezavantajları
Olasılık dağılımı iterasyona bağlı değişebilir.
Yakınsama süresi belirsizdir (ancak yakınsama garantisini sağlar.)
39
Karınca kolonisi optimizasyonu
Uygulama alanları
Routing
Connection-oriented network routing
Connectionless network routing
Optical network routing
Traveling salesman
Vehicle routing
Assignment
Course timetabling
Graph coloring
Frequency assignment
Quadratic assignment
40
Uygulama alanları
Machine learning
Classification rules
Neural networks
Fuzzy systems
Scheduling
Project scheduling
Car scheduling
Subset
Set covering
Maximum clique
41
Karınca kolonisi optimizasyonu
Örnek uygulama
https://www.youtube.com/watch?v=eVKAIufSrHs&feature=youtu.be
PSO algoritmasının bilgisayar mühendisliği alanında
uygulamasını içeren bir makale araştırma ödevi hazırlayınız.
43