Implementation of Partcle Swarm Optimization of the Rastrigin function.
python3 -m venv .venv
source .venv/bin/activate
pip3 install requirements.txt
python3 main.py
Outputs will be printed on the terminal and the gif of the generations will be saved in imgs.
Generation 0 swarm fitness: 1.917454315301491, swarm position: [ 0.06817019 -1.00350015]
Generation 1 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 2 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 3 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 4 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 5 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 6 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 7 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 8 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 9 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 10 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 11 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 12 swarm fitness: 1.917454315301491, swarm position: [ 0.07794328 -0.98246863]
Generation 13 swarm fitness: 1.2368225012643208, swarm position: [-0.06963069 0.03833158]
Generation 14 swarm fitness: 1.1035847234185674, swarm position: [-0.06860456 0.03051155]
Generation 15 swarm fitness: 1.0915880693707436, swarm position: [-0.06850195 0.02972954]
Generation 16 swarm fitness: 1.0904017237217012, swarm position: [-0.06849169 0.02965134]
Generation 17 swarm fitness: 1.0902832223996413, swarm position: [-0.06849066 0.02964352]
Generation 18 swarm fitness: 1.0902713735999114, swarm position: [-0.06849056 0.02964274]
Generation 19 swarm fitness: 0.5746546499086449, swarm position: [-0.05279316 0.01161189]
Generation 20 swarm fitness: 0.5351753056952013, swarm position: [-0.05122342 0.0098088 ]
Generation 21 swarm fitness: 0.3673014175467486, swarm position: [-0.04313905 0.00131228]
Generation 22 swarm fitness: 0.3534572857811895, swarm position: [-0.04233062 0.00046263]
Generation 23 swarm fitness: 0.3521023849724152, swarm position: [-0.04224977 0.00037767]
Generation 24 swarm fitness: 0.3289237914343701, swarm position: [-0.01621779 -0.03743763]
Generation 25 swarm fitness: 0.2779515879259513, swarm position: [-0.03697595 -0.0063177 ]
Generation 26 swarm fitness: 0.2719876647470123, swarm position: [-0.03647576 -0.00680226]
Generation 27 swarm fitness: 0.2714017088137908, swarm position: [-0.03642574 -0.00685071]
Generation 28 swarm fitness: 0.27134321759628577, swarm position: [-0.03642073 -0.00685556]
Generation 29 swarm fitness: 0.24025924930234055, swarm position: [-0.02404985 -0.02520021]
Generation 30 swarm fitness: 0.23652855728897038, swarm position: [-0.02413361 -0.0247413 ]
Generation 31 swarm fitness: 0.23616017955956892, swarm position: [-0.02414198 -0.02469541]
Generation 32 swarm fitness: 0.23612338870889005, swarm position: [-0.02414282 -0.02469082]
Generation 33 swarm fitness: 0.23611971009304966, swarm position: [-0.0241429 -0.02469036]
Generation 34 swarm fitness: 0.23611934223615805, swarm position: [-0.02414291 -0.02469031]
Generation 35 swarm fitness: 0.23611930545051507, swarm position: [-0.02414291 -0.02469031]
Generation 36 swarm fitness: 0.23611930177195006, swarm position: [-0.02414291 -0.02469031]
Generation 37 swarm fitness: 0.23611930140409498, swarm position: [-0.02414291 -0.02469031]
Generation 38 swarm fitness: 0.23611930136731019, swarm position: [-0.02414291 -0.02469031]
Generation 39 swarm fitness: 0.23611930136362957, swarm position: [-0.02414291 -0.02469031]
Generation 40 swarm fitness: 0.23611930136326365, swarm position: [-0.02414291 -0.02469031]
Generation 41 swarm fitness: 0.23379330064877735, swarm position: [-0.02932052 -0.01793048]
Generation 42 swarm fitness: 0.23279390151000712, swarm position: [-0.02922759 -0.0179409 ]
Generation 43 swarm fitness: 0.23269414926223675, swarm position: [-0.0292183 -0.01794194]
Generation 44 swarm fitness: 0.23268417591419777, swarm position: [-0.02921737 -0.01794205]
Generation 45 swarm fitness: 0.2326831785981618, swarm position: [-0.02921728 -0.01794206]
Generation 46 swarm fitness: 0.23268307886674577, swarm position: [-0.02921727 -0.01794206]
Generation 47 swarm fitness: 0.23268306889360701, swarm position: [-0.02921727 -0.01794206]
Generation 48 swarm fitness: 0.23070184384867787, swarm position: [-0.02666129 -0.02131575]
Generation 49 swarm fitness: 0.230449974042223, swarm position: [-0.02666426 -0.02128215]
Generation 50 swarm fitness: 0.2302688538841018, swarm position: [-0.02814542 -0.0192617 ]
Generation 51 swarm fitness: 0.22943602560682308, swarm position: [-0.02680041 -0.02098899]
Generation 52 swarm fitness: 0.22933936100874064, swarm position: [-0.026814 -0.02096001]
Generation 53 swarm fitness: 0.17710211066573578, swarm position: [-0.02129219 -0.02099137]
Generation 54 swarm fitness: 0.1510527444173988, swarm position: [-0.01781007 -0.02109891]
Generation 55 swarm fitness: 0.13585049572179742, swarm position: [ 0.00549039 -0.02561296]
Generation 56 swarm fitness: 0.13158794318485434, swarm position: [-0.01272023 -0.02241382]
Generation 57 swarm fitness: 0.1261063784199692, swarm position: [-0.01109358 -0.02266025]
Generation 58 swarm fitness: 0.11981360691283527, swarm position: [-0.00852872 -0.02306789]
Generation 59 swarm fitness: 0.11933123696960024, swarm position: [-0.00827224 -0.02310866]
Generation 60 swarm fitness: 0.1161668212012934, swarm position: [-0.00678984 -0.02324654]
Generation 61 swarm fitness: 0.11589869696238608, swarm position: [-0.0066416 -0.02326033]
Generation 62 swarm fitness: 0.11587236778483145, swarm position: [-0.00662678 -0.02326171]
Generation 63 swarm fitness: 0.11586973969961178, swarm position: [-0.0066253 -0.02326185]
Generation 64 swarm fitness: 0.11474015246226088, swarm position: [-0.00597907 -0.02331463]
Generation 65 swarm fitness: 0.113815823076159, swarm position: [-0.00538343 -0.02335994]
Generation 66 swarm fitness: 0.11373117223462259, swarm position: [-0.00532387 -0.02336447]
Generation 67 swarm fitness: 0.11372278497512056, swarm position: [-0.00531791 -0.02336492]
Generation 68 swarm fitness: 0.11372194702742178, swarm position: [-0.00531732 -0.02336497]
Generation 69 swarm fitness: 0.0470872187674658, swarm position: [-0.00384415 -0.01492413]
Generation 70 swarm fitness: 0.031273352385433384, swarm position: [-0.00271157 -0.01226196]
Generation 71 swarm fitness: 0.020173739297355553, swarm position: [-0.00212186 -0.00985976]
Generation 72 swarm fitness: 0.007758713770002146, swarm position: [-0.00150945 -0.0060691 ]
Generation 73 swarm fitness: 0.0032768605268813644, swarm position: [-0.00141298 -0.00381068]
Generation 74 swarm fitness: 0.0029401416974508265, swarm position: [-0.00140333 -0.00358484]
Generation 75 swarm fitness: 0.0014468205275051105, swarm position: [0.0008259 0.00257114]
Generation 76 swarm fitness: 0.001303674510950259, swarm position: [0.0007967 0.00243651]
Generation 77 swarm fitness: 0.0010648994688935431, swarm position: [-0.00088581 -0.00214081]
Generation 78 swarm fitness: 0.001033921849554531, swarm position: [-0.00086677 -0.00211194]
Generation 79 swarm fitness: 0.000940382353647351, swarm position: [0.00037157 0.00214523]
Generation 80 swarm fitness: 0.0005887729061448965, swarm position: [-0.00076629 -0.0015429 ]
Generation 81 swarm fitness: 0.0005236938839985328, swarm position: [-0.00075564 -0.0014383 ]
Generation 82 swarm fitness: 0.000313493015045907, swarm position: [-0.00064153 -0.00108102]
Generation 83 swarm fitness: 0.00014820895748712815, swarm position: [-0.00011675 0.0008564 ]
Generation 84 swarm fitness: 0.00012049722263185458, swarm position: [-0.00053416 -0.00056749]
Generation 85 swarm fitness: 6.718993726195777e-05, swarm position: [-0.00014765 0.00056291]
Generation 86 swarm fitness: 6.178461757500031e-05, swarm position: [-0.00014949 0.00053766]
Generation 87 swarm fitness: 4.170488364252378e-05, swarm position: [-0.00042949 -0.00016048]
Generation 88 swarm fitness: 3.9895209305029766e-05, swarm position: [-0.0004252 -0.00014248]
Generation 89 swarm fitness: 3.612910532169167e-05, swarm position: [-0.00040887 -0.00012219]
Generation 90 swarm fitness: 2.728519190497991e-05, swarm position: [-0.00022651 0.00029364]
Generation 91 swarm fitness: 2.6391957909766006e-05, swarm position: [-0.00022757 0.00028502]
Generation 92 swarm fitness: 2.5973795064970773e-05, swarm position: [-3.56262148e-04 -6.32365537e-05]
Generation 93 swarm fitness: 2.3061155861370253e-05, swarm position: [-3.38280751e-04 -4.25026685e-05]
Generation 94 swarm fitness: 2.2786329644475245e-05, swarm position: [-3.36482611e-04 -4.04292800e-05]
Generation 95 swarm fitness: 2.2759011397255335e-05, swarm position: [-3.36302797e-04 -4.02219411e-05]
Generation 96 swarm fitness: 2.2756281218505592e-05, swarm position: [-3.36284815e-04 -4.02012073e-05]
Generation 97 swarm fitness: 2.2081135639950844e-05, swarm position: [-0.00028585 0.00017201]
Generation 98 swarm fitness: 2.146312842654652e-05, swarm position: [-3.28092676e-04 -2.32516473e-05]
Generation 99 swarm fitness: 2.0332917010534857e-05, swarm position: [-3.19658730e-04 -1.75179534e-05]