| | --- |
| | license: mit |
| | --- |
| | Here's a comprehensive Hugging Face model card for your Particle Swarm Optimization PyQt5 application: |
| |
|
| | ```markdown |
| | --- |
| | language: |
| | - en |
| | tags: |
| | - optimization |
| | - particle-swarm |
| | - pso |
| | - mathematical-optimization |
| | - benchmark-functions |
| | - pyqt5 |
| | - gui |
| | - visualization |
| | - metaheuristics |
| | - evolutionary-computation |
| | library_name: pyqt5 |
| | pipeline_tag: visualization |
| | --- |
| |
|
| | # Particle Swarm Optimization Visualizer |
| |
|
| | ## Model Overview |
| |
|
| | A comprehensive PyQt5 application that implements Particle Swarm Optimization (PSO) to solve 20 different mathematical optimization problems with real-time 2D and 3D visualizations. Watch particles oscillate and converge towards optimal solutions across various benchmark functions. |
| |
|
| |  |
| |  |
| |
|
| | ## Features |
| |
|
| | ### 🎯 20 Optimization Problems |
| | - **10 2D Benchmark Functions**: Sphere, Rosenbrock, Rastrigin, Ackley, Matyas, Himmelblau, Three-Hump Camel, Easom, Cross-in-Tray, Holder Table |
| | - **10 3D Benchmark Functions**: Sphere 3D, Rosenbrock 3D, Rastrigin 3D, Ackley 3D, Sum of Different Powers, Rotated Hyper-Ellipsoid, Zakharov 3D, Dixon-Price, Levy 3D, Michalewicz 3D |
| |
|
| | ### 📊 Real-time Visualizations |
| | - **2D Contour Plots**: Particle movement over function landscapes |
| | - **3D Surface Plots**: Interactive 3D optimization landscapes |
| | - **Live Particle Tracking**: Watch particles oscillate and converge |
| | - **Progress Monitoring**: Real-time optimization progress |
| |
|
| | ### ⚙️ Customizable PSO Parameters |
| | - Particle count (10-100) |
| | - Iterations (10-500) |
| | - Inertia weight (0.1-1.0) |
| | - Cognitive parameter (0.1-2.0) |
| | - Social parameter (0.1-2.0) |
| |
|
| | ## Quick Start |
| |
|
| | ### Installation |
| |
|
| | ```bash |
| | # Clone repository |
| | git clone https://huggingface.co/TroglodyteDerivations/pso-pyqt5-visualizer |
| | cd pso-pyqt5-visualizer |
| | |
| | # Install dependencies |
| | pip install -r requirements.txt |
| | |
| | # Run the application |
| | python app.py |
| | ``` |
| |
|
| | ### Requirements |
| |
|
| | ```txt |
| | numpy>=1.21.0 |
| | matplotlib>=3.5.0 |
| | PyQt5>=5.15.0 |
| | ``` |
| |
|
| | ## Usage |
| |
|
| | 1. **Select Equation**: Choose from 20 benchmark functions |
| | 2. **Configure Parameters**: Adjust PSO parameters as needed |
| | 3. **Run Optimization**: Click "Run PSO" to start |
| | 4. **Visualize**: Watch real-time particle movement |
| | 5. **Analyze**: Review optimization results |
| |
|
| | ## Application Interface |
| |
|
| |  |
| |  |
| |
|
| | ### Control Panel |
| | - Equation selection with detailed descriptions |
| | - PSO parameter configuration |
| | - Interactive controls (Run, Pause, Step, Reset) |
| | - Real-time progress tracking |
| | - Results display |
| |
|
| | ### Visualization Panel |
| | - **Top**: 2D contour plots with particle trajectories |
| | - **Bottom**: 3D surface plots showing optimization landscape |
| | - Real-time updates during optimization |
| |
|
| | ## Benchmark Functions |
| |
|
| | ### 2D Functions |
| | | Function | Description | Global Minimum | |
| | |----------|-------------|----------------| |
| | | Sphere | f(x,y) = x² + y² | (0,0) | |
| | | Rosenbrock | f(x,y) = 100(y-x²)² + (1-x)² | (1,1) | |
| | | Rastrigin | Multi-modal function | (0,0) | |
| | | Ackley | Many local minima | (0,0) | |
| | | Himmelblau | Four equal minima | Multiple | |
| |
|
| | ### 3D Functions |
| | | Function | Dimensions | Complexity | |
| | |----------|------------|------------| |
| | | Sphere 3D | 3 | Unimodal | |
| | | Rastrigin 3D | 3 | Multi-modal | |
| | | Michalewicz | 3 | Many local minima | |
| | | Levy 3D | 3 | Complex landscape | |
| |
|
| | ## PSO Algorithm |
| |
|
| | ### Mathematical Formulation |
| | Particle velocity and position updates: |
| |
|
| | ``` |
| | v_i(t+1) = w * v_i(t) + c1 * r1 * (pbest_i - x_i(t)) + c2 * r2 * (gbest - x_i(t)) |
| | x_i(t+1) = x_i(t) + v_i(t+1) |
| | ``` |
| |
|
| | Where: |
| | - `w`: Inertia weight |
| | - `c1`, `c2`: Cognitive and social parameters |
| | - `r1`, `r2`: Random numbers |
| | - `pbest_i`: Particle's best position |
| | - `gbest`: Global best position |
| |
|
| | ### Key Features |
| | - **Boundary Handling**: Particles bounce off boundaries |
| | - **Velocity Clamping**: Prevents explosion |
| | - **History Tracking**: Complete optimization history |
| | - **Convergence Monitoring**: Real-time best value tracking |
| |
|
| | ## Educational Value |
| |
|
| | This application serves as an excellent educational tool for: |
| | - Understanding PSO algorithm behavior |
| | - Visualizing optimization landscapes |
| | - Comparing benchmark function characteristics |
| | - Studying metaheuristic optimization |
| | - Learning about multi-modal optimization |
| |
|
| | ## Performance |
| |
|
| | ### Optimization Capabilities |
| | - **Convergence**: Rapid convergence on unimodal functions |
| | - **Exploration**: Effective global search on multi-modal functions |
| | - **Stability**: Robust performance across different landscapes |
| | - **Scalability**: Handles 2D and 3D problems efficiently |
| |
|
| | ### Visualization Performance |
| | - **Smooth Animation**: 30+ FPS particle movement |
| | - **Interactive Plots**: Zoom, pan, and rotate 3D views |
| | - **Real-time Updates**: Instant parameter feedback |
| | - **Memory Efficient**: Optimized for long runs |
| |
|
| | ## Use Cases |
| |
|
| | ### 🎓 Education |
| | - Optimization algorithm courses |
| | - Metaheuristic visualization |
| | - Mathematical modeling classes |
| |
|
| | ### 🔬 Research |
| | - Algorithm benchmarking |
| | - Parameter sensitivity analysis |
| | - Optimization landscape study |
| |
|
| | ### 💼 Industry |
| | - Engineering optimization problems |
| | - Machine learning hyperparameter tuning |
| | - Financial modeling optimization |
| |
|
| | ## Contributing |
| |
|
| | We welcome contributions! Areas for improvement: |
| | - Additional benchmark functions |
| | - Advanced PSO variants |
| | - Export functionality |
| | - Performance optimizations |
| | - Additional visualization types |
| |
|
| | ## Citation |
| |
|
| | If you use this application in your research or teaching, please cite: |
| |
|
| | ```bibtex |
| | @software{pso_pyqt5_visualizer, |
| | title = {Particle Swarm Optimization PyQt5 Visualizer}, |
| | author = {Martin Rivera}, |
| | year = {2025}, |
| | url = {https://huggingface.co/TroglodyteDerivations/pso-pyqt5-visualizer} |
| | } |
| | ``` |
| |
|
| | ## License |
| |
|
| | This project is licensed under the MIT License - see the LICENSE file for details. |
| |
|
| | ## Support |
| |
|
| | For issues and questions: |
| | - Open an issue on Hugging Face |
| | - Check the documentation |
| | - Review example configurations |
| |
|
| | ## Model Card Authors |
| |
|
| | [TroglodyteDerivations] |
| |
|
| | ## Model Card Contact |
| |
|
| | [https://huggingface.co/TroglodyteDerivations/Particle_Swarm_Optimization_Visualizer_PyQt5/edit/main/README.md] |
| |
|
| | --- |
| |
|
| | <div align="center"> |
| |
|
| | **✨ Watch particles find optimal solutions in beautiful visualizations! ✨** |
| |
|
| | </div> |
| | ``` |
| | |
| | ## Additional Files for Hugging Face |
| | |
| | You should also create these files for your Hugging Face repository: |
| | |
| | ### `README.md` (same as above) |
| | |
| | ### `requirements.txt` |
| | ```txt |
| | numpy>=1.21.0 |
| | matplotlib>=3.5.0 |
| | PyQt5>=5.15.0 |
| | ``` |
| | |
| | ### `app.py` |
| | |
| | ### `LICENSE` |
| | ```txt |
| | MIT License |
| |
|
| | Copyright (c) 2025 [Martin Rivera] |
| |
|
| | Permission is hereby granted, free of charge, to any person obtaining a copy |
| | of this software and associated documentation files (the "Software"), to deal |
| | in the Software without restriction, including without limitation the rights |
| | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| | copies of the Software, and to permit persons to whom the Software is |
| | furnished to do so, subject to the following conditions: |
| |
|
| | The above copyright notice and this permission notice shall be included in all |
| | copies or substantial portions of the Software. |
| |
|
| | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| | SOFTWARE. |
| | ``` |
| | |
| | ### `.gitattributes` |
| | ```gitattributes |
| | *.py filter=lfs diff=lfs merge=lfs -text |
| | *.png filter=lfs diff=lfs merge=lfs -text |
| | *.jpg filter=lfs diff=lfs merge=lfs -text |
| | ``` |
| | |
| | This model card provides comprehensive documentation for your PSO PyQt5 application and makes it ready for sharing on Hugging Face Hub! |