Machine Learning Optimization Algorithms - PSO, GA, MOPSO implementations and examples.
This project provides implementations and Jupyter notebook examples for solving optimization problems using metaheuristic algorithms:
- Genetic Algorithms (GA) - Evolution-inspired optimization
- Particle Swarm Optimization (PSO) - Swarm intelligence-based optimization
- Multi-Objective PSO (MOPSO) - Multi-objective optimization with Pareto fronts
ml_optimization_problem_example/
├── src/ # Source code
│ └── optimization/ # Optimization algorithms package
│ ├── __init__.py
│ ├── genetic.py # Genetic algorithm implementation
│ └── swarm.py # PSO and MOPSO implementations
├── notebooks/ # Jupyter notebooks
│ ├── genetic_algorithms/ # GA examples with different libraries
│ └── particle_swarm/ # PSO examples
├── tests/ # Unit tests
├── data/ # Data files
│ ├── raw/
│ └── processed/
├── docs/ # Documentation
├── pyproject.toml # Project configuration
├── requirements.txt # Dependencies
└── LICENSE
# Clone the repository
git clone https://github.com/sujata/ml-optimization-examples.git
cd ml-optimization-examples
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install package in development mode
pip install -e .conda create -n optimization python=3.10
conda activate optimization
pip install -r requirements.txtfrom src.optimization import GeneticOptimizer, ParticleSwarmOptimizer
import numpy as np
# Define objective function
def sphere(x):
return np.sum(x**2)
# Genetic Algorithm
ga = GeneticOptimizer(
fitness_func=sphere,
num_genes=3,
population_size=50,
num_generations=100,
gene_bounds=[(-5, 5)] * 3
)
best_solution, best_fitness = ga.optimize()
print(f"GA Best: {best_solution}, Fitness: {best_fitness}")
# Particle Swarm Optimization
pso = ParticleSwarmOptimizer(
fitness_func=sphere,
num_dimensions=3,
num_particles=30,
max_iterations=100,
bounds=[(-5, 5)] * 3
)
best_position, best_fitness = pso.optimize()
print(f"PSO Best: {best_position}, Fitness: {best_fitness}")- Install the Jupyter extension
- Open any notebook in
notebooks/directory - Select Python interpreter and run cells
jupyter notebook notebooks/- Upload notebook to Google Colab
- Install required packages:
!pip install pygad pymoo pyswarms - Run cells
| Notebook | Library | Description |
|---|---|---|
GA_pygad.ipynb |
pygad | GA optimization using PyGAD library |
GA_with_genetic_algorithm.ipynb |
geneticalgorithm | GA using geneticalgorithm package |
GA_with_pymoo.ipynb |
pymoo | GA optimization with pymoo |
pymoo_GA.ipynb |
pymoo | Additional pymoo GA examples |
| Notebook | Library | Description |
|---|---|---|
PSO_with_Pyswarms.ipynb |
pyswarms | PSO for sphere functions |
MOPSO.ipynb |
pyswarms | Multi-objective PSO examples |
# Run all tests
pytest
# Run with coverage
pytest --cov=src/optimization
# Run specific test file
pytest tests/test_genetic.py -v- Python >= 3.8
- numpy >= 1.21.0
- matplotlib >= 3.5.0
- pygad >= 3.0.0
- pymoo >= 0.6.0
- pyswarms >= 1.3.0
- geneticalgorithm >= 1.0.0
MIT License - see LICENSE for details.