Particle Swarm Optimization
Interactive demonstration of PSO algorithm for 2D function optimization.
Features
- Test Functions: Sphere, Rastrigin, Rosenbrock, Ackley
- Visualization: Contour lines, heatmap, particles with velocity vectors
- Best Markers: Personal best (small) and global best (large)
- Convergence Graph: Track fitness improvement over iterations
- Configurable Parameters: Swarm size, inertia, cognitive/social weights
Technical Details
- Swarm size: 30 particles (configurable)
- Inertia weight: 0.7 (configurable, 0.4-0.9)
- Cognitive weight: 1.5 (attraction to personal best)
- Social weight: 1.5 (attraction to global best)
- Velocity clamping: Prevents particles from escaping search space
Keyboard Shortcuts
- Space: Start/Pause
- R: Reset
Generation Prompt
Create a Particle Swarm Optimization demo for 2D function optimization.
Requirements:
- Particles exploring 2D search space with velocity vectors
- Test functions: Sphere, Rastrigin, Rosenbrock, Ackley
- Heatmap/contour visualization of the objective function
- Each particle tracks personal best position
- Swarm shares global best position
- Configurable: swarm size, inertia, cognitive/social weights
- Velocity update: v = w*v + c1*r1*(pBest-x) + c2*r2*(gBest-x)
- Visualization: particles as dots, velocity as lines, best markers
- Convergence graph showing fitness over iterations
UI:
- Canvas in .card.full.ratio-16-9
- Widget before: title + slogan
- Widget after: algorithm explanation
- Widget modal: documentation
- Start/Pause and Reset controls
- Function selector dropdown
- Parameter sliders (inertia, cognitive, social)