Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ML Optimization Examples

Machine Learning Optimization Algorithms - PSO, GA, MOPSO implementations and examples.

Overview

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

Project Structure

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

Installation

Using pip

# 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 .

Using conda

conda create -n optimization python=3.10
conda activate optimization
pip install -r requirements.txt

Usage

Using the Package

from 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}")

Running Notebooks

Using VS Code

  1. Install the Jupyter extension
  2. Open any notebook in notebooks/ directory
  3. Select Python interpreter and run cells

Using Jupyter CLI

jupyter notebook notebooks/

Using Google Colab

  1. Upload notebook to Google Colab
  2. Install required packages: !pip install pygad pymoo pyswarms
  3. Run cells

Notebooks

Genetic Algorithms (notebooks/genetic_algorithms/)

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

Particle Swarm (notebooks/particle_swarm/)

Notebook Library Description
PSO_with_Pyswarms.ipynb pyswarms PSO for sphere functions
MOPSO.ipynb pyswarms Multi-objective PSO examples

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=src/optimization

# Run specific test file
pytest tests/test_genetic.py -v

Dependencies

  • 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

License

MIT License - see LICENSE for details.

About

PSO, GA, MOPSO, Minimizations problems

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages