Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. clear all
  2. clc;
  3. numcykle=1000; % pocet cyklov hladania
  4. pocet_retazcov=90; % velkost populacie - kolko retazcov naraz testujem
  5.  
  6. pokuta=10^10;
  7. Space=[-10 -10 -10 -10 -10 -10 -10 ; 10 10 10 10 10 10 10]; % rozsah prvkov v retazci
  8.  
  9. Pop=genrpop(pocet_retazcov,Space);
  10.  
  11. for i=1:numcykle
  12. for x=1:pocet_retazcov
  13. Fit(x)=(Pop(x,1)-10)^2 + 5*((Pop(x,2)-12)^2) + Pop(x,3)^4 + 3*((Pop(x,4)-11)^2) + 10*(Pop(x,5)^6)+7*(Pop(x,6)^2) + Pop(x,7)^4 - 4*(Pop(x,6)*Pop(x,7))-10*Pop(x,6)-8*Pop(x,7);
  14. end
  15.  
  16. for x=1:pocet_retazcov
  17. a=0;
  18. if (127-(2*Pop(x,1)^2)-3*Pop(x,2)^4-Pop(x,3)-4*(Pop(x,4)^2)-5*Pop(x,5))<0
  19. a=a+1;
  20. end
  21.  
  22. if (282-7*Pop(x,1)-3*Pop(x,2)-10*(Pop(x,3)^2)-Pop(x,4)+Pop(x,5))<0
  23. a=a+1;
  24. end
  25.  
  26. if (196-23*Pop(x,1)-(Pop(x,2))^2-6*(Pop(x,6)^2)+8*Pop(x,7)<0)
  27. a=a+1;
  28. end
  29.  
  30. if ((-4*(Pop(x,1)^2))-Pop(x,2)^2+(3*Pop(x,1)*Pop(x,2))-2*(Pop(x,3)^2)-5*Pop(x,6)+11*Pop(x,7) < 0)
  31. a=a+1;
  32. end
  33.  
  34. if a~=0
  35. Fit(x)=Fit(x) + pokuta;
  36. end
  37.  
  38. end
  39.  
  40. BestOne=selbest(Pop,Fit,1);
  41. grafFit(i)=(BestOne(1)-10)^2 + 5*((BestOne(2)-12)^2) + BestOne(3)^4 + 3*((BestOne(4)-11)^2) + 10*(BestOne(5)^6)+7*(BestOne(6)^2) +BestOne(7)^4 - (4*BestOne(6)*BestOne(7))-10*BestOne(6)-8*BestOne(7);
  42.  
  43. Best=selbest(Pop,Fit,[10 10 5 3 2]);
  44. Work=seltourn(Pop,Fit,30);
  45. Work = [Work;Best];
  46. Work=crossov(Work,4,1);
  47. Work=mutx(Work,0.1,Space);
  48. Work=muta(Work,0.1,ones(1,7)*10,Space);
  49. Pop=[Best;Work];
  50.  
  51.  
  52. end
  53.  
  54.  
  55. disp(BestOne);
  56. plot(grafFit);
  57. axis([0 numcykle 0 2500]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement