• Sonuç bulunamadı

Zeki Optimizasyon Teknikleri Intelligent Optimization Techniques

N/A
N/A
Protected

Academic year: 2021

Share "Zeki Optimizasyon Teknikleri Intelligent Optimization Techniques"

Copied!
22
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

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

(2)

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

(3)

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

1ve

c

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ığın

t.

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

(4)

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

(5)

Algoritma

9

Parçacık sürü optimizasyonu

Algoritma

(6)

Ö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 xxxx

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

(7)

Ö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.

(8)

Ö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

(9)

Ö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 xxx 3xx xxx  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

1

ve 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

(10)

Ö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

(11)

Ö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.

(12)

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

(13)

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

1

ve 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

(14)

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”

(15)

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

(16)

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

(17)

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 sonra

j

’ye geçiş olasılığı aşağıdaki gibi hesaplanır.

,

i

ile

j

arasındaki feromen maddesi miktarıdır.

,

i

ile

j

arasındaki yolun uzunluğudur.

,

i

ile

j

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.

(18)

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

ile

j

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 ise

k

. 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

(19)

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.

(20)

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

(21)

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

(22)

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

Referanslar

Benzer Belgeler

 Başlangıç temel değişkenler vektörü temel başlangıç çözüm olarak adlandırılır..  Optimum çözüm elde edilinceye kadar değişkenler vektörü iteratif

 Stokastik hill climbing algoritması doğrudan arama yapar ve sürekli domain’de arama yapmak için türeve

 Evrimsel programlamanın amacı, uygun aday topluluğundaki birey sayısını maksimize etmektir.  Aday çözümlerin gösterimi, fitness function tarafından

 Elit birey alınmazsa yeni jenerasyondaki en iyi birey bir önceki jenerasyonun en iyi bireyinden daha kötü olabilir... Popülasyondaki her kromozomu uygunluk fonksiyonuyla

 Memetik algoritma, popülasyon tabanlı global arama yöntemleri ile lokal arama yöntemlerini birleştirerek kullanır.  Genetik algoritma ile hill climbing gibi lokal arama

Glandular component is a very rare finding in myxomas which are one of the most common primary benign cardiac tumors.. This rate was found ranging 1% to 5% in

PCA is a technique used in statistical analysis to transform a large number of correlated variables to a smaller number of uncorrelated (orthogonal) components

The procedure of the following algorithms step by step mentioned in Appendix II, the initial factor loadings matrix, variamx rotated factor loadings matrix,