Bunu kendin de implemente edebilirsin, hazir kod bulmana gerek yok.
Sana f() fonksiyonunu minimum yapacak 3 deger gerek. Fonksiyon 3 degiskene bagli. Bu sebeple 3 farkli PSO uygulaman gerekiyor, her bir swarm bir variable icin optimizasyon yapacak.
Fonksiyon gorece kolay, partial derivative aldiginda x1,x2 ve x3 icin, diger degiskenlere bagli bir fonksiyon elde etmeyeceksin. O sebeple turev fonksiyonlarinda diger parcaciklarla iletisime gecmeden algoritman bir sonraki degeri ve yonu belirleyebilecek.
Ornek, x1 icin.
Random bir noktadan basladin [-10,10] araliginda, diyelim ki 8 olsun.
O noktadaki turevin kac? 16.
Senin optimize etmen icin, tersine dogru gitmen gerekiyor. Turevi negatif bir "eta" degeri ile carpacaksin. Diyelim ki o da 0.0065 olsun. Her iterasyonda, kucuk kucuk minimum noktasina dogru ilerleyeceksin. Bunu her variable icin, swarm miktari kadar tekrarlarsan global optimal x1,x2 ve x3'u bulursun.
Bir nevi gradient descent yapiyorsun aslinda, zaten PSO ile cok benzerler.