Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. clc,clear all, close all
  2. as=-10;us=10;ssize=5;d=100;w=0.8;c1=5;c2=5;
  3. suru=unifrnd(as,us,[ssize d]);
  4. obj=zeros(ssize,1);
  5. for i=1:ssize
  6. obj(i)=sum(suru(i,:).^2);
  7. end
  8.  
  9. velocity=zeros(ssize,d);
  10.  
  11. en_iyi_pozisyon=suru;
  12. en_iyi_deger=obj;
  13. surunun_en_iyi_degeri=min(obj);
  14. idx=find(surunun_en_iyi_degeri==obj);
  15. surunun_en_iyi_pozisyonu=suru(idx,:);
  16. iteration=1;
  17.  
  18. while iteration<=50
  19.  
  20. for i=1:ssize
  21. velocity(i,:)=w*velocity(i,:)+c1*unifrnd(0,1)*(en_iyi_pozisyon(i,:)-suru(i,:))+c2*unifrnd(0,1)*(surunun_en_iyi_pozisyonu-suru(i,:));
  22. end
  23.  
  24. vmax=(us-as)/2;
  25.  
  26. for i=1:ssize
  27. for j=1:d
  28. if velocity(i,j)>vmax
  29. velocity(i,j)=vmax;
  30. elseif velocity(i,j)<-vmax
  31. velocity(i,j)=-vmax;
  32. end
  33. end
  34. end
  35.  
  36. suru=suru+velocity;
  37.  
  38. for i=1:ssize
  39. for j=1:d
  40. if suru(i,j)>us
  41. suru(i,j)=us;
  42. elseif suru(i,j)<as
  43. suru(i,j)=as;
  44. end
  45. end
  46. end
  47.  
  48. for i=1:ssize
  49. obj(i)=sum(suru(i,:).^2);
  50. end
  51. % En İyi Değerleri Tutma Ve Güncelleme
  52. for i=1:ssize
  53. if obj(i)<en_iyi_deger(i)
  54. en_iyi_deger(i)=obj(i);
  55. en_iyi_pozisyon(i,:)=suru(i,:);
  56. end
  57. end
  58. % Sürülerin Gelmiş En iyi değerleri ve o değerin pozisyonları
  59. if min(obj)<surunun_en_iyi_degeri
  60. surunun_en_iyi_degeri=min(obj);
  61. idx=find(surunun_en_iyi_degeri==obj);
  62. surunun_en_iyi_pozisyonu=suru(idx,:);
  63. end
  64. iteration=iteration+1;
  65. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement